Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3522|Antwoord: 2

[Bron] Een eenvoudige vergelijking van Garnet cache en Redis ontwikkeld met .NET

[Link kopiëren]
Geplaatst op 28-3-2024 18:00:42 | | | |
Garnet is een nieuw type externe cacheopslag ontwikkeld door Microsoft Research dat verschillende unieke voordelen biedt:

  • Garnet neemt het populaire RESP-lijnprotocol als uitgangspunt, waardoor het mogelijk is om Garnet te gebruiken vanaf ongewijzigde Redis-clients die tegenwoordig in de meeste programmeertalen beschikbaar zijn, zoals StackExchange.Redis in C#.
  • Garnet biedt een betere doorvoer en schaalbaarheid met veel clientverbindingen en kleine batches vergeleken met vergelijkbare open-source cacheopslag, wat kosten bespaart voor grote applicaties en diensten.
  • Garnet toonde extreem lage clientlatentie (meestal minder dan 300 microseconden bij 99,9%) met Commodity Cloud (Azure) VM's met versnelde TCP ingeschakeld, wat cruciaal is voor realistische scenario's.
  • Garnet is gebaseerd op de nieuwste .NET-technologie en is cross-platform, uitbreidbaar en modern. Het is ontworpen om gemakkelijk te ontwikkelen en te evolueren zonder in te leveren op prestaties in veelvoorkomende situaties. We maken gebruik van het rijke bibliotheekecosysteem van .NET om de API uit te breiden en open optimalisatiemogelijkheden te bieden. Dankzij ons zorgvuldige gebruik van .NET bereikt Garnet state-of-the-art prestaties op zowel Linux als Windows.


Open source adres:De hyperlink-login is zichtbaar.
Documentatie:De hyperlink-login is zichtbaar.

Garnet heeft de volgende belangrijke voordelen:

  • De serverdoorvoersnelheid (bewerkingen per seconde) wordt met meerdere ordes van grootte verhoogd voor kleine batches en veel clientsessies ten opzichte van vergelijkbare open source cacheopslag.
  • Op commodity cloud (Azure) machines met versnelde TCP ingeschakeld op Windows en Linux is de latentie per bewerking extreem laag (meestal minder dan 300 microseconden bij 99,9%).
  • Naarmate het aantal clients toeneemt, wordt er een betere schaalbaarheid bereikt, met of zonder client batching.
  • Mogelijkheid om alle CPU-/geheugenbronnen van een servercomputer te gebruiken via één gedeelde geheugenserverinstantie (geen behoefte aan intra-node clustering).
  • Ondersteuning voor datasets die groter dan het geheugen zijn en overstromen naar on-premises en cloudopslagapparaten.
  • Databasefuncties zoals snelle checkpoint en herstel en publiceren/abonneren.
  • Ondersteuning voor multi-node sharded hash partitionering (Redis "cluster" modus), state-migratie en replicatie.
  • Goed getest met een uitgebreide testsuite (duizenden unittests tegen Garnet en zijn opslaglaag Tsavorite).
  • C#-codebase die gemakkelijk te evolueren en uit te breiden is.


Garnet ondersteunt niet alle Redis-commando's, specifiek ondersteunt hij commando's om te bekijken:De hyperlink-login is zichtbaar.
Het Garnet-project bevat een Benchmark-tool voor het uitvoeren van RESP-benchmarks met verschillende clients, verschillende workloads en verschillende beleidslijnen om doorvoer, prestaties en latentie te meten. Adres:De hyperlink-login is zichtbaar.
RESP-protocol:De hyperlink-login is zichtbaar.

Dit artikel maakt gebruik van de ingebouwde benchmarktools van Edis voor eenvoudig testen, en de testomgeving is als volgt:

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

cacheVersie
RedisRedis 3.0.504 (000000000/0) 64 bit
GranaatGarnet 1.0.2 64 bit; Standalone modus


Redis-benchmarks

Start eerst de Redis-cache met de commandoregel met het volgende commando:


Het testcommando is als volgt:


De resultaten zijn als volgt:



====== ZET ======
  500.000 verzoeken afgerond in 24,38 seconden
  100 parallelle clients
  3 bytes payload
  Blijf in leven: 1

0,03% <= 1 milliseconde
0,25% <= 2 milliseconden
2,65% <= 3 milliseconden
16,49% <= 4 milliseconden
59,95% <= 5 milliseconden
99,09% <= 6 milliseconden
99,76% <= 7 milliseconden
99,86% <= 8 milliseconden
99,93% <= 9 milliseconden
99,98% <= 10 milliseconden
99,99% <= 11 milliseconden
100,00% <= 12 milliseconden
20512,82 verzoeken per seconde

====== GA ======
  500.000 verzoeken voltooid in 27,41 seconden
  100 parallelle clients
  3 bytes payload
  Blijf in leven: 1

0,03% <= 1 milliseconde
0,19% <= 2 milliseconden
6,44% <= 3 milliseconden
25,82% <= 4 milliseconden
45,65% <= 5 milliseconden
98,79% <= 6 milliseconden
99,98% <= 7 milliseconden
99,98% <= 8 milliseconden
99,98% <= 9 milliseconden
100,00% <= 9 milliseconden
18238,86 verzoeken per seconde

Garnet-benchmarks

Maak een nieuw .NET 8 consoleproject aan en verwijs eerst naar het Microsoft.Garnet-pakket met het volgende commando:


De code is als volgt:


Het opstartcommando is als volgt:


Met hetzelfde benchmarkcommando is het resultaat als volgt:



====== ZET ======
  5000000 verzoeken voltooid in 11,51 seconden
  100 parallelle clients
  3 bytes payload
  Blijf in leven: 1

75,51% <= 1 milliseconde
88,24% <= 2 milliseconden
92,04% <= 3 milliseconden
99,46% <= 4 milliseconden
99,98% <= 5 milliseconden
99,99% <= 6 milliseconden
100,00% <= 12 milliseconden
100,00% <= 12 milliseconden
43448,04 verzoeken per seconde

====== GA ======
  500000 verzoeken afgerond in 31,50 seconden
  100 parallelle clients
  3 bytes payload
  Blijf in leven: 1

0,01% <= 1 milliseconde
0,90% <= 2 milliseconden
27,25% <= 3 milliseconden
97,65% <= 4 milliseconden
99,82% <= 5 milliseconden
99,94% <= 6 milliseconden
99,98% <= 7 milliseconden
99,98% <= 9 milliseconden
99,98% <= 10 milliseconden
99,99% <= 11 milliseconden
100,00% <= 12 milliseconden
100,00% <= 12 milliseconden
15872.01 verzoeken per seconde

Omdat de testtools, softwareversies, testparameters, enzovoort allemaal tot verschillende resultaten leiden, zijn de tests alleen ter referentie; uit de eenvoudige tests in dit artikel blijkt dat Garnet aanzienlijk lagere latentie heeft dan Redis.

(Einde)




Vorig:.NET/C# reflectieattribuut, dat kan worden beoordeeld op nultypes
Volgend:SSE (1) gebruikt ASP.NET Core als SSE-server
 Huisbaas| Geplaatst op 28-3-2024 18:01:32 |
KeyDB is een volledig open-source database die wordt aangedreven door Snap en is een sneller alternatief voor Redis. Adres:https://docs.keydb.dev/
 Huisbaas| Geplaatst op 3 september 2025 09:36:07 |
SNELLER: Snelle gelijktijdige, persistente sleutelwaarde opslag en logging in C# en C++.
        
Documentatie:De hyperlink-login is zichtbaar.
Bron:De hyperlink-login is zichtbaar.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com