Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 3522|Válasz: 2

[Forrás] Egy egyszerű összehasonlítás a Garnet gyorsítótár és a Redis között, amelyet a .NET fejlesztésével fejlesztettek ki

[Linket másol]
Közzétéve: 2024-3-28 18:00:42 | | | |
A Garnet egy újfajta távoli gyorsítótár-tárolás, amelyet a Microsoft Research fejlesztett ki, és több egyedi előnyt kínál:

  • A Garnet a népszerű RESP vonalprotokollt veszi kiindulópontként, ami lehetővé teszi, hogy a Garnet a legtöbb programozási nyelvben elérhető, ma már a legtöbb programozási nyelvben elérhető módosítatlan Redis kliensekből is használható, például a StackExchange.Redis C#-ban.
  • A Garnet jobb áteresztőképességet és skálázhatóságot kínál sok kliens kapcsolattal és kis adagokkal szemben a hasonló nyílt forráskódú gyorsítótárhoz képest, ami költségeket takarít meg nagy alkalmazások és szolgáltatások esetén.
  • A Garnet rendkívül alacsony ügyfélkésleltetést mutatott (általában kevesebb mint 300 mikromásodperc 99,9%-on, amikor Commodity Cloud (Azure) VM-eket használtak gyorsított TCP bekapcsolva, ami kritikus a valós helyzetekben.
  • A Garnet a legújabb .NET technológián alapul, és platformos rendszerű, bővíthető és modern. Úgy tervezték, hogy könnyen fejleszthető és fejlődjön anélkül, hogy a teljesítményt feláldoznánk a hétköznapi helyzetekben. A .NET gazdag könyvtárökoszisztémáját kihasználjuk az API bővítésére és nyílt optimalizálási lehetőségek biztosítására. A .NET gondos alkalmazásának köszönhetően a Garnet csúcstechnológiás teljesítményt ér el mind Linuxon, mind Windowson.


Nyílt forráskódú cím:A hiperlink bejelentkezés látható.
Dokumentáció:A hiperlink bejelentkezés látható.

A Garnet a következő kulcsfontosságú előnyökkel rendelkezik:

  • A szerver áteresztőképessége (művelet másodpercenként) több nagyságrenddel nő kis adagok és sok kliens munkamenet esetén a hasonló nyílt forráskódú gyorsítótár tároláshoz képest.
  • A commodity cloud (Azure) gépeken, ahol Windows és Linux esetén gyorsított TCP engedélyezett a késleltetés műveletenként rendkívül alacsony (általában kevesebb, mint 300 mikromásodperc, 99,9%).
  • Ahogy a kliensek száma nő, jobb skálázhatóságot ér el akár kliens-batching-kel, akár nélkül.
  • Lehetőség arra, hogy egy szerver számítógép összes CPU/memória erőforrását egyetlen megosztott memória-szerver példányon keresztül használja (nincs szükség csomóponton belüli klaszterezésre).
  • Támogatás a memória nagyobb, mint egy olyan adathalmazhoz, amelyek túlcsordulnak az on-premises és felhőalapú tárolóeszközökre.
  • Adatbázis funkciók, mint a gyors ellenőrzőpont, a helyreállítás és a közzététel/előfizetés.
  • Támogatás többcsomópontos sharded hash partícióhoz (Redis "klaszter" mód), állapotmigrációhoz és replikációhoz.
  • Jól tesztelték egy átfogó tesztkészlettel (több ezer egységteszt a Garnet és annak tárolási szintje, a Tsavorite ellen).
  • C# kódbázis, amit könnyű fejleszteni és bővíteni.


A Garnet nem támogatja az összes Redis parancsot, különösen azokat a parancsokat, amelyek a következők megtekintéséhez támogattak:A hiperlink bejelentkezés látható.
A Garnet projekt tartalmaz egy Benchmark eszközt a RESP benchmarkok futtatásához különböző kliensekkel, különböző munkaterhelésekkel és különböző szabályzatokkal az áteresztőképesség, teljesítmény és késleltetés mérésére. Cím:A hiperlink bejelentkezés látható.
RESP protokoll:A hiperlink bejelentkezés látható.

Ez a cikk a Redis beépített benchmarking eszközeit használja egyszerű teszteléshez, és a tesztkörnyezet a következő:

Redis Benchmark teljesítményteszt
https://www.itsvse.com/thread-9645-1-1.html

gyorsítótárverzió
RedisRedis 3.0.504 (00000000/0) 64 bit
GránátGarnet 1.0.2 64 bit; Független mód


Redis benchmarkok

Először indítsd el a Redis gyorsítótárt a parancssorral a következő parancsval:


A tesztparancs a következő:


Az eredmények a következők:



====== BEÁLLÍTANI ======
  500000 kérés 24,38 másodperc alatt teljesítve
  100 párhuzamos kliens
  3 bájtos hasznos teher
  Életben marad: 1

0,03% <= 1 milliszekundum
0,25% <= 2 milliszekundum
2,65% <= 3 milliszekundum
16,49% <= 4 milliszekundum
59,95% <= 5 milliszekundum
99,09% <= 6 milliszekundum
99,76% <= 7 milliszekundum
99,86% <= 8 milliszekundum
99,93% <= 9 milliszekundum
99,98% <= 10 milliszekundum
99,99% <= 11 milliszekundum
100,00% <= 12 milliszekundum
20512.82 kérés másodpercenként

====== MENJ ======
  500000 kérés teljesítve 27,41 másodperc alatt
  100 párhuzamos kliens
  3 bájtos hasznos teher
  Életben marad: 1

0,03% <= 1 milliszekundum
0,19% <= 2 milliszekundum
6,44% <= 3 milliszekundum
25,82% <= 4 milliszekundum
45,65% <= 5 milliszekundum
98,79% <= 6 milliszekundum
99,98% <= 7 milliszekundum
99,98% <= 8 milliszekundum
99,98% <= 9 milliszekundum
100,00% <= 9 milliszekundum
18238.86 kérés másodpercenként

Garnet benchmarkok

Hozz létre egy új .NET 8 konzolprojektet, és először hivatkozz a Microsoft.Garnet csomagra a következő parancscal:


A kódex a következő:


A startup parancs a következő:


Ugyanazzal a benchmark parancsgal az eredmény a következő:



====== BEÁLLÍTANI ======
  500000 kérés teljesítve 11,51 másodperc alatt
  100 párhuzamos kliens
  3 bájtos hasznos teher
  Életben marad: 1

75,51% <= 1 milliszekundum
88,24% <= 2 milliszekundum
92,04% <= 3 milliszekundum
99,46% <= 4 milliszekundum
99,98% <= 5 milliszekundum
99,99% <= 6 milliszekundum
100,00% <= 12 milliszekundum
100,00% <= 12 milliszekundum
43448.04 kérés másodpercenként

====== MENJ ======
  500000 kérés 31,50 másodperc alatt teljesítve
  100 párhuzamos kliens
  3 bájtos hasznos teher
  Életben marad: 1

0,01% <= 1 milliszekundum
0,90% <= 2 milliszekundum
27,25% <= 3 milliszekundum
97,65% <= 4 milliszekundum
99,82% <= 5 milliszekundum
99,94% <= 6 milliszekundum
99,98% <= 7 milliszekundum
99,98% <= 9 milliszekundum
99,98% <= 10 milliszekundum
99,99% <= 11 milliszekundum
100,00% <= 12 milliszekundum
100,00% <= 12 milliszekundum
15872.01 kérés másodpercenként

A tesztelési eszközök, szoftververziók, tesztparaméterek stb. miatt mind eltérő eredményeket vezetnek, a tesztek csak referenciaként szolgálnak, a cikkben szereplő egyszerű tesztek alapján látható, hogy a Garnet késleltetése jelentősen alacsonyabb, mint a Redis.

(Vége)




Előző:.NET/C# tükrözési attribútum, amely null típusok alapján ítélhető meg
Következő:Az SSE (1) ASP.NET Core-ot használja SSE szerverként
 Háziúr| Közzétéve: 2024-3-28 18:01:32 |
A KeyDB egy teljesen nyílt forráskódú adatbázis, amelyet a Snap működtet, és gyorsabb alternatíva a Redis-szel. Cím:https://docs.keydb.dev/
 Háziúr| Közzétéve: 2025-9-3 09:36:07 |
GYORSABBAN: Gyors párhuzamos állandó kulcs-érték tárolás és naplózás C# és C++ nyelvekben.
        
Dokumentáció:A hiperlink bejelentkezés látható.
Forrás:A hiperlink bejelentkezés látható.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com