Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 3522|Svar: 2

[Källa] En enkel jämförelse mellan Garnet cache och Redis utvecklat med .NET

[Kopiera länk]
Publicerad 2024-3-28 18:00:42 | | | |
Garnet är en ny typ av fjärrcachelagring utvecklad av Microsoft Research som erbjuder flera unika fördelar:

  • Garnet tar det populära RESP-linjeprotokollet som utgångspunkt, vilket gör det möjligt att använda Garnet från omodifierade Redis-klienter som finns i de flesta programmeringsspråk idag, såsom StackExchange.Redis i C#.
  • Garnet erbjuder bättre genomströmning och skalbarhet med många klientanslutningar och små batcher jämfört med jämförbar öppen källkods cachelagring, vilket sparar kostnader för stora applikationer och tjänster.
  • Garnet visade extremt låg klientlatens (vanligtvis mindre än 300 mikrosekunder vid 99,9 %) med Commodity Cloud (Azure) VM:ar med accelererad TCP aktiverad, vilket är avgörande för verkliga scenarier.
  • Garnet baseras på den senaste .NET-teknologin och är plattformsoberörd, utbyggbar och modern. Den är utformad för att vara lätt att utveckla och utveckla utan att offra prestanda i vanliga situationer. Vi utnyttjar det rika biblioteksekosystemet i .NET för att utöka API:et och erbjuda öppna optimeringsmöjligheter. Tack vare vår noggranna användning av .NET uppnår Garnet toppmodern prestanda både på Linux och Windows.


Öppen källkodsadress:Inloggningen med hyperlänken är synlig.
Dokumentation:Inloggningen med hyperlänken är synlig.

Garnet har följande viktiga fördelar:

  • Servergenomströmningen (operationer per sekund) ökas med flera storleksordningar för små batcher och många klientsessioner jämfört med jämförbar öppen källkods cachelagring.
  • På vanliga molnmaskiner (Azure) med accelererad TCP aktiverad på Windows och Linux är latensen per operation extremt låg (vanligtvis mindre än 300 mikrosekunder vid 99,9 %).
  • När antalet klienter ökar uppnås bättre skalbarhet med eller utan klientbatchning.
  • Möjlighet att använda alla CPU-/minnesresurser på en serverdator via en enda delad minnesserverinstans (inget behov av klustring inom noden).
  • Stöd för dataset större än minne som överflödar till lokala och molnlagringsenheter.
  • Databasfunktioner som snabb kontrollpunkt och återställning samt publicera/prenumerera.
  • Stöd för multi-nodes sharded hashpartitionering (Redis "cluster"-läge), tillståndsmigration och replikering.
  • Väl testat med en omfattande testsvit (tusentals enhetstester mot Garnet och dess lagringslager Tsavorite).
  • C#-kodbas som är lätt att utveckla och utöka.


Garnet stöder inte alla Redis-kommandon, specifikt stödde kommandon för att visa:Inloggningen med hyperlänken är synlig.
Garnet-projektet inkluderar ett benchmarkverktyg för att köra RESP-benchmarks med olika klienter, olika arbetsbelastningar och olika policyer för att mäta genomströmning, prestanda och latens. Adress:Inloggningen med hyperlänken är synlig.
RESP-protokoll:Inloggningen med hyperlänken är synlig.

Den här artikeln använder Redis inbyggda benchmarkingverktyg för enkel testning, och testmiljön är följande:

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

cacheversion
RedisRedis 3.0.504 (000000000/0) 64 bit
GranatGarnet 1.0.2 64 bitar; Fristående läge


Redis-benchmarks

Först, starta Redis-cachen med kommandoraden med följande kommando:


Testkommandot är följande:


Resultaten är följande:



====== SET ======
  500000 förfrågningar slutförda på 24,38 sekunder
  100 parallella klienter
  3 bytes nyttolast
  håll vid liv: 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 förfrågningar per sekund

====== GÅ ======
  500000 förfrågningar slutförda på 27,41 sekunder
  100 parallella klienter
  3 bytes nyttolast
  håll vid liv: 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 förfrågningar per sekund

Granat-benchmarks

Skapa ett nytt .NET 8-konsolprojekt och referera först till Microsoft.Garnet-paketet med följande kommando:


Koden är följande:


Startkommandot är följande:


Med samma benchmark-kommando blir resultatet följande:



====== SET ======
  500000 förfrågningar slutförda på 11,51 sekunder
  100 parallella klienter
  3 bytes nyttolast
  håll vid liv: 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 förfrågningar per sekund

====== GÅ ======
  500000 förfrågningar slutförda på 31,50 sekunder
  100 parallella klienter
  3 bytes nyttolast
  håll vid liv: 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 förfrågningar per sekund

Eftersom testverktyg, mjukvaruversioner, testparametrar etc. alla leder till olika resultat, är testerna endast för referens, och genom de enkla testerna i denna artikel kan man se att Garnet har betydligt lägre latens än Redis.

(Slut)




Föregående:.NET/C#-reflektionsattributet, som kan bedömas utifrån nulltyper
Nästa:SSE (1) använder ASP.NET Core som SSE-server
 Hyresvärd| Publicerad den 28-03-2024 18:01:32 |
KeyDB är en helt öppen källkodsdatabas som drivs av Snap och är ett snabbare alternativ till Redis. Adress:https://docs.keydb.dev/
 Hyresvärd| Publicerad den 2025-9-3 09:36:07 |
FASTER: Snabb samtidig persistent lagring av nyckelvärden och loggning i C# och C++.
        
Dokumentation:Inloggningen med hyperlänken är synlig.
Källa:Inloggningen med hyperlänken är synlig.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com