Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3522|Svar: 2

[Kilde] En simpel sammenligning af Garnet cache og Redis udviklet med .NET

[Kopier link]
Opslået den 28-3-2024 kl. 18:00:42 | | | |
Garnet er en ny type fjerncachelagring udviklet af Microsoft Research, som tilbyder flere unikke fordele:

  • Garnet tager udgangspunktet fra den populære RESP-linjeprotokol, hvilket gør det muligt at bruge Garnet fra uændrede Redis-klienter, der findes i de fleste programmeringssprog i dag, såsom StackExchange.Redis i C#.
  • Garnet tilbyder bedre gennemstrømning og skalerbarhed med mange klientforbindelser og små batches sammenlignet med tilsvarende open source cache-lagring, hvilket sparer omkostninger for store applikationer og tjenester.
  • Garnet viste ekstremt lav klientlatens (typisk under 300 mikrosekunder ved 99,9 %) ved brug af Commodity Cloud (Azure) VM'er med accelereret TCP aktiveret, hvilket er afgørende i virkelige scenarier.
  • Garnet er baseret på den nyeste .NET-teknologi og er platformurørende, udvidelig og moderne. Den er designet til at være let at udvikle og udvikle uden at gå på kompromis med ydeevnen i almindelige situationer. Vi udnytter det rige biblioteksøkosystem i .NET til at udvide API'et og tilbyde åbne optimeringsmuligheder. Takket være vores omhyggelige brug af .NET opnår Garnet topmoderne ydeevne på både Linux og Windows.


Open source-adresse:Hyperlink-login er synlig.
Dokumentation:Hyperlink-login er synlig.

Garnet har følgende nøglefordele:

  • Servergennemstrømning (operationer per sekund) øges med flere størrelsesordener for små batches og mange klientsessioner i forhold til sammenlignelig open source cachelagring.
  • På almindelige cloud-maskiner (Azure) med accelereret TCP aktiveret på Windows og Linux er latenstiden pr. operation ekstremt lav (typisk under 300 mikrosekunder ved 99,9%).
  • Efterhånden som antallet af klienter stiger, opnås bedre skalerbarhed med eller uden klientbatching.
  • Mulighed for at bruge alle CPU/hukommelsesressourcer på en servercomputer gennem en enkelt delt hukommelsesserverinstans (ingen behov for intra-node clustering).
  • Understøttelse af datasæt større end hukommelse, der flyder over til on-premises og cloud-lagringsenheder.
  • Databasefunktioner som hurtig checkpoint og gendannelse samt publicer/abonner.
  • Understøttelse af multi-node sharded hash-partitionering (Redis "cluster" mode), tilstandsmigration og replikering.
  • Godt testet med en omfattende testpakke (tusindvis af enhedstests mod Garnet og dets lagerlag Tsavorite).
  • C#-kodebase, der er nem at udvikle og udvide.


Garnet understøtter ikke alle Redis-kommandoer, specifikt understøttede kommandoer til visning:Hyperlink-login er synlig.
Garnet-projektet inkluderer et Benchmark-værktøj til at køre RESP-benchmarks med forskellige klienter, forskellige arbejdsbelastninger og forskellige politikker til at måle gennemstrømning, ydeevne og latenstid. Adresse:Hyperlink-login er synlig.
RESP-protokol:Hyperlink-login er synlig.

Denne artikel bruger Redis' indbyggede benchmarkingværktøjer til simpel testning, og testmiljøet er som følger:


cacheversion
RedisRedis 3.0.504 (000000000/0) 64 bit
GranatGarnet 1.0.2 64 bit; Standalone-tilstand


Redis-benchmarks

Start først Redis-cachen ved hjælp af kommandolinjen med følgende kommando:


Testkommandoen er som følger:


Resultaterne er som følger:



====== SÆT ======
  500000 forespørgsler blev færdiggjort på 24,38 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold dig 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ørgsler per sekund

====== KOM ======
  500000 anmodninger gennemført på 27,41 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold dig 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ørgsler per sekund

Garnet-benchmarks

Opret et nyt .NET 8-konsolprojekt og referer først til Microsoft.Garnet-pakken med følgende kommando:


Koden er som følger:


Opstartskommandoen er som følger:


Ved brug af den samme benchmark-kommando er resultatet som følger:



====== SÆT ======
  500000 forespørgsler blev gennemført på 11,51 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold dig 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ørgsler per sekund

====== KOM ======
  500000 forespørgsler gennemført på 31,50 sekunder
  100 parallelle klienter
  3 bytes nyttelast
  Hold dig 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ørgsler per sekund

På grund af testværktøjer, softwareversioner, testparametre osv. fører alle til forskellige resultater, er testene kun til reference, og gennem de simple tests i denne artikel kan man se, at Garnet har betydeligt lavere latenstid end Redis.

(Slut)




Tidligere:.NET/C# refleksionsattributt, som kan bedømmes ud fra null-typer
Næste:SSE (1) bruger ASP.NET Core som SSE-server
 Udlejer| Opslået den 28-3-2024 kl. 18:01:32 |
KeyDB er en fuldstændig open source-database drevet af Snap og er et hurtigere alternativ til Redis. Adresse:https://docs.keydb.dev/
 Udlejer| Opslået den 2025-9-3 09:36:07 |
FASTER: Hurtig samtidig persistent nøgleværdilagring og logning i C# og C++.
        
Dokumentation:Hyperlink-login er synlig.
Kilde:Hyperlink-login er synlig.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com