Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 3522|Svare: 2

[Kilde] En enkel sammenligning av Garnet cache og Redis utviklet med .NET

[Kopier lenke]
Publisert 28.03.2024 18:00:42 | | | |
Garnet er en ny type fjernlagring utviklet av Microsoft Research som tilbyr flere unike fordeler:

  • Garnet tar den populære RESP-linjeprotokollen som utgangspunkt, som gjør det mulig å bruke Garnet fra uendrede Redis-klienter som er tilgjengelige i de fleste programmeringsspråk i dag, som StackExchange.Redis i C#.
  • Garnet tilbyr bedre gjennomstrømning og skalerbarhet med mange klienttilkoblinger og små batcher sammenlignet med sammenlignbar åpen kildekode-cachelagring, noe som sparer kostnader for store applikasjoner og tjenester.
  • Garnet viste ekstremt lav klientlatens (vanligvis mindre enn 300 mikrosekunder ved 99,9 %) ved bruk av Commodity Cloud (Azure) VM-er med akselerert TCP aktivert, noe som er kritisk for virkelige scenarioer.
  • Garnet er basert på den nyeste .NET-teknologien og er plattformuavhengig, utvidbar og moderne. Den er designet for å være enkel å utvikle og utvikle uten å ofre ytelsen i vanlige situasjoner. Vi utnytter det rike bibliotekøkosystemet i .NET for å utvide API-et og tilby åpne optimaliseringsmuligheter. Takket være vår nøye bruk av .NET oppnår Garnet topp moderne ytelse både på Linux og Windows.


Åpen kildekode-adresse:Innloggingen med hyperkoblingen er synlig.
Dokumentasjon:Innloggingen med hyperkoblingen er synlig.

Granat har følgende viktige fordeler:

  • Servergjennomstrømning (operasjoner per sekund) økes med flere størrelsesordener for små batcher og mange klientøkter sammenlignet med sammenlignbar åpen kildekode-cachelagring.
  • På vanlige cloud-maskiner (Azure) med akselerert TCP aktivert på Windows og Linux, er latensen per operasjon ekstremt lav (vanligvis mindre enn 300 mikrosekunder på 99,9 %).
  • Etter hvert som antallet klienter øker, oppnås bedre skalerbarhet med eller uten klientbatching.
  • Mulighet til å bruke alle CPU-/minneressurser på en servermaskin gjennom en enkelt delt minneserverinstans (ingen behov for intra-node-klynging).
  • Støtte for datasett større enn minne som flyter over til lokale og skybaserte lagringsenheter.
  • Databasefunksjoner som rask sjekkpunkt og gjenoppretting og publiser/abonner.
  • Støtte for multi-node sharded hash-partisjonering (Redis "cluster"-modus), tilstandsmigrasjon og replikasjon.
  • Godt testet med en omfattende testpakke (tusenvis av enhetstester mot Garnet og lagringsnivået Tsavorite).
  • C#-kodebase som er enkel å utvikle og utvide.


Garnet støtter ikke alle Redis-kommandoer, spesielt støttede kommandoer for visning:Innloggingen med hyperkoblingen er synlig.
Garnet-prosjektet inkluderer et Benchmark-verktøy for å kjøre RESP-benchmarks ved bruk av ulike klienter, ulike arbeidsbelastninger og ulike policyer for å måle gjennomstrømning, ytelse og latenstid. Adresse:Innloggingen med hyperkoblingen er synlig.
RESP-protokoll:Innloggingen med hyperkoblingen er synlig.

Denne artikkelen bruker Redis sine innebygde benchmarkingverktøy for enkel testing, og testmiljøet er som følger:


cacheversjon
RedisRedis 3.0.504 (00000000/0) 64-bit
GranatGarnet 1.0.2 64 bit; Frittstående modus


Redis-benchmarks

Først starter du Redis-cachen ved å bruke kommandolinjen med følgende kommando:


Testkommandoen er som følger:


Resultatene er som følger:



====== SETT ======
  5000000 forespørsler fullført på 24,38 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold deg i live: 1

0,03 % <= 1 millisekund
0,25 % <= 2 millisekunder
2,65 % <= 3 millisekunder
16,49 % <= 4 millisekunder
59,95 % <= 5 millisekunder
99,09 % <= 6 millisekunder
99,76 % <= 7 millisekunder
99,86 % <= 8 millisekunder
99,93 % <= 9 millisekunder
99,98 % <= 10 millisekunder
99,99 % <= 11 millisekunder
100,00 % <= 12 millisekunder
20512,82 forespørsler per sekund

====== KOM ======
  5000000 forespørsler fullført på 27,41 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold deg i live: 1

0,03 % <= 1 millisekund
0,19 % <= 2 millisekunder
6,44 % <= 3 millisekunder
25,82 % <= 4 millisekunder
45,65 % <= 5 millisekunder
98,79 % <= 6 millisekunder
99,98 % <= 7 millisekunder
99,98 % <= 8 millisekunder
99,98 % <= 9 millisekunder
100,00 % <= 9 millisekunder
18238,86 forespørsler per sekund

Garnet-benchmarks

Opprett et nytt .NET 8-konsollprosjekt og referer først til Microsoft.Garnet-pakken med følgende kommando:


Koden er som følger:


Oppstartskommandoen er som følger:


Ved å bruke samme benchmark-kommando er resultatet som følger:



====== SETT ======
  5000000 forespørsler fullført på 11,51 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold deg i live: 1

75,51 % <= 1 millisekund
88,24 % <= 2 millisekunder
92,04 % < = 3 millisekunder
99,46 % <= 4 millisekunder
99,98 % <= 5 millisekunder
99,99 % <= 6 millisekunder
100,00 % <= 12 millisekunder
100,00 % <= 12 millisekunder
43448,04 forespørsler per sekund

====== KOM ======
  500000 forespørsler fullført på 31,50 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold deg i live: 1

0,01 % <= 1 millisekund
0,90 % <= 2 millisekunder
27,25 % <= 3 millisekunder
97,65 % <= 4 millisekunder
99,82 % <= 5 millisekunder
99,94 % <= 6 millisekunder
99,98 % <= 7 millisekunder
99,98 % <= 9 millisekunder
99,98 % <= 10 millisekunder
99,99 % <= 11 millisekunder
100,00 % <= 12 millisekunder
100,00 % <= 12 millisekunder
15872.01 forespørsler per sekund

På grunn av testverktøy, programvareversjoner, testparametere osv. som alle gir ulike resultater, er testene kun til referanse, og gjennom de enkle testene i denne artikkelen kan man se at Garnet har betydelig lavere latenstid enn Redis.

(Slutt)




Foregående:.NET/C# refleksjonsattributt, som kan vurderes ut fra nulltyper
Neste:SSE (1) bruker ASP.NET Core som SSE-server
 Vert| Publisert 28.03.2024 18:01:32 |
KeyDB er en helt åpen kildekode-database drevet av Snap og er et raskere alternativ til Redis. Adresse:https://docs.keydb.dev/
 Vert| Publisert 2025-9-3 09:36:07 |
FASTER: Rask samtidig persistent lagring av nøkkelverdier og logging i C# og C++.
        
Dokumentasjon:Innloggingen med hyperkoblingen er synlig.
Kilde:Innloggingen med hyperkoblingen er synlig.
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com