Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 3718|Vastaus: 2

[Lähde] Yksinkertainen vertailu Garnet-välimuistin ja Redisin välillä, kehitetty .NET:llä

[Kopioi linkki]
Julkaistu 28.3.2024 18.00.42 | | | |
Garnet on Microsoft Researchin kehittämä uusi etävälimuistin tallennustyyppi, joka tarjoaa useita ainutlaatuisia etuja:

  • Garnet ottaa suositun RESP-linjaprotokollan lähtökohtana, mikä mahdollistaa Garnetin käytön muokkaamattomista Redis-asiakkaista, joita on saatavilla useimmissa nykykielissä, kuten StackExchange.Redis C#:ssa.
  • Garnet tarjoaa paremman läpimenon ja skaalautuvuuden monien asiakasyhteyksien ja pienten erien kanssa verrattuna vastaavaan avoimen lähdekoodin välimuistitallennukseen, mikä säästää kustannuksia suurille sovelluksille ja palveluille.
  • Garnet osoitti erittäin alhaisen asiakaslatenssin (tyypillisesti alle 300 mikrosekuntia 99,9 %) käyttäen Commodity Cloud (Azure) -virtuaalikoneita, joissa kiihdytetty TCP oli käytössä, mikä on kriittistä todellisissa tilanteissa.
  • Garnet perustuu uusimpaan .NET-teknologiaan ja on monialustainen, laajennettavissa ja moderni. Se on suunniteltu helpoksi kehittää ja kehittyä ilman, että suorituskyky kärsii tavallisissa tilanteissa. Hyödynnämme .NET:n rikasta kirjastoekosysteemiä laajentaaksemme API:a ja tarjotaksemme avoimia optimointimahdollisuuksia. Huolellisen .NET-käytön ansiosta Garnet saavuttaa huipputason suorituskyvyn sekä Linuxilla että Windowsilla.


Avoimen lähdekoodin osoite:Hyperlinkin kirjautuminen on näkyvissä.
Dokumentaatio:Hyperlinkin kirjautuminen on näkyvissä.

Garnetilla on seuraavat keskeiset edut:

  • Palvelinten läpimenokyky (operaatiot sekunnissa) kasvaa useilla kertaluokilla pienissä erissä ja monissa asiakassessioissa verrattuna vastaavaan avoimen lähdekoodin välimuistitallennukseen.
  • Tavallisen pilven (Azure) koneilla, joissa kiihdytetty TCP on käytössä Windowsissa ja Linuxissa, viive per operaatio on erittäin pieni (tyypillisesti alle 300 mikrosekuntia 99,9 %:ssa).
  • Kun asiakasmäärä kasvaa, saavutetaan parempi skaalautuvuus joko asiakaseräyksellä tai ilman.
  • Mahdollisuus käyttää kaikkia palvelintietokoneen suoritin- ja muistiresursseja yhden jaetun muistipalvelininstanssin kautta (ei tarvetta solmun sisäisille klustereille).
  • Tuki muistia suuremmille tietoaineistoille, jotka ylikuormittuvat paikallisiin ja pilvitallennuslaitteisiin.
  • Tietokannan ominaisuudet, kuten nopea tarkistuspiste ja palautus sekä julkaise/tilaa.
  • Tuki monisolmuiselle shardioidulle hash-osioinnille (Redis "cluster"-tila), tilamigraatiolle ja replikaatiolle.
  • Hyvin testattu kattavalla testipaketilla (tuhansia yksikkötestejä Garnetia ja sen tallennustasoa Tsavoritea vastaan).
  • C#-koodipohja, jota on helppo kehittää ja laajentaa.


Garnet ei tue kaikkia Redis-komentoja, erityisesti niitä komentoja, joilla voi nähdä:Hyperlinkin kirjautuminen on näkyvissä.
Garnet-projekti sisältää Benchmark-työkalun RESP-vertailujen suorittamiseen eri asiakaskunnissa, erilaisilla työkuormilla ja eri politiikoilla läpimenon, suorituskyvyn ja viiveen mittaamiseen. Osoite:Hyperlinkin kirjautuminen on näkyvissä.
RESP-protokolla:Hyperlinkin kirjautuminen on näkyvissä.

Tässä artikkelissa käytetään Redisin sisäänrakennettuja vertailutyökaluja yksinkertaiseen testaukseen, ja testiympäristö on seuraava:

Redis Benchmark -suorituskykytesti
https://www.itsvse.com/thread-9645-1-1.html

välimuistiversio
RedisRedis 3.0.504 (00000000/0) 64-bittinen
GranaattiGarnet 1.0.2 64-bittinen; Itsenäinen tila


Redis-vertailuarvot

Ensiksi käynnistä Redis-välimuisti komentorivillä seuraavalla komennolla:


Testikomento on seuraava:


Tulokset ovat seuraavat:



====== ASETTAA ======
  500000 pyyntöä suoritettu 24,38 sekunnissa
  100 rinnakkaisasiakasta
  3 tavun hyötykuorma
  pysy hengissä: 1

0,03 % <= 1 millisekunti
0,25 % <= 2 millisekuntia
2,65 % <= 3 millisekuntia
16,49% <= 4 millisekuntia
59,95 % <= 5 millisekuntia
99,09 % <= 6 millisekuntia
99,76 % <= 7 millisekuntia
99,86 % <= 8 millisekuntia
99,93 % <= 9 millisekuntia
99,98% <= 10 millisekuntia
99,99 % <= 11 millisekuntia
100,00 % <= 12 millisekuntia
20512.82 pyyntöä sekunnissa

====== OTA ======
  500000 pyyntöä suoritettu 27,41 sekunnissa
  100 rinnakkaisasiakasta
  3 tavun hyötykuorma
  pysy hengissä: 1

0,03 % <= 1 millisekunti
0,19% <= 2 millisekuntia
6,44 % <= 3 millisekuntia
25,82 % <= 4 millisekuntia
45,65 % <= 5 millisekuntia
98,79 % <= 6 millisekuntia
99,98% <= 7 millisekuntia
99,98% <= 8 millisekuntia
99,98 % <= 9 millisekuntia
100,00 % <= 9 millisekuntia
18238,86 pyyntöä sekunnissa

Garnet-vertailut

Luo uusi .NET 8 -konsoliprojekti ja viittaa ensin Microsoft.Garnet-pakettiin seuraavalla komennolla:


Koodi on seuraava:


Käynnistyskomento on seuraava:


Samaa benchmark-komentoa käyttäen tulos on seuraava:



====== ASETTAA ======
  500000 pyyntöä valmiina 11,51 sekunnissa
  100 rinnakkaisasiakasta
  3 tavun hyötykuorma
  pysy hengissä: 1

75,51 % <= 1 millisekunti
88,24 % <= 2 millisekuntia
92,04 % <= 3 millisekuntia
99,46 % <= 4 millisekuntia
99,98 % <= 5 millisekuntia
99,99 % <= 6 millisekuntia
100,00 % <= 12 millisekuntia
100,00 % <= 12 millisekuntia
43448.04 pyyntöä sekunnissa

====== OTA ======
  500000 pyyntöä tehty 31,50 sekunnissa
  100 rinnakkaisasiakasta
  3 tavun hyötykuorma
  pysy hengissä: 1

0,01 % <= 1 millisekunti
0,90 % <= 2 millisekuntia
27,25 % <= 3 millisekuntia
97,65 % <= 4 millisekuntia
99,82 % <= 5 millisekuntia
99,94% <= 6 millisekuntia
99,98% <= 7 millisekuntia
99,98 % <= 9 millisekuntia
99,98% <= 10 millisekuntia
99,99 % <= 11 millisekuntia
100,00 % <= 12 millisekuntia
100,00 % <= 12 millisekuntia
15872.01 pyyntöä sekunnissa

Koska testaustyökalut, ohjelmistoversiot, testiparametrit jne. johtavat erilaisiin tuloksiin, testit ovat vain viitteitä; tämän artikkelin yksinkertaisista testeistä voi nähdä, että Garnetilla on huomattavasti alhaisempi viive kuin Redisillä.

(Loppu)




Edellinen:.NET/C# heijastusattribuutti, jota voidaan arvioida nollatyypeillä
Seuraava:SSE (1) käyttää ASP.NET Corea SSE-palvelimena
 Vuokraisäntä| Julkaistu 28.3.2024 18.01.32 |
KeyDB on täysin avoimen lähdekoodin tietokanta, jota pyörittää Snap, ja se on nopeampi vaihtoehto Redisille. Osoite:https://docs.keydb.dev/
 Vuokraisäntä| Julkaistu 3.9.2025 9.36.07 |
NOPEAMPI: Nopea samanaikainen pysyvä avainarvon tallennus ja kirjaaminen C#:lla ja C++:lla.
        
Dokumentaatio:Hyperlinkin kirjautuminen on näkyvissä.
Lähde:Hyperlinkin kirjautuminen on näkyvissä.
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com