Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3522|Atsakyti: 2

[Šaltinis] Paprastas "Garnet" talpyklos ir "Redis", sukurtos naudojant .NET, palyginimas

[Kopijuoti nuorodą]
Publikuota: 2024-3-28 18:00:42 | | | |
Granatas yra naujo tipo nuotolinė talpyklos saugykla, kurią sukūrė "Microsoft Research", siūlanti keletą unikalių privalumų:

  • Granatas remiasi populiariu RESP linijos protokolu, kuris leidžia naudoti Garnet iš nemodifikuotų Redis klientų, prieinamų daugelyje programavimo kalbų, tokių kaip StackExchange.Redis C#.
  • Granatas siūlo geresnį pralaidumą ir mastelio keitimą su daugeliu klientų ryšių ir mažų partijų, palyginti su panašia atvirojo kodo talpyklos saugykla, taupant išlaidas didelėms programoms ir paslaugoms.
  • "Garnet" pademonstravo itin mažą kliento delsą (paprastai mažiau nei 300 mikrosekundžių esant 99,9 proc.), naudodamas "Commodity Cloud" (Azure) VM su įjungtu pagreitintu TCP, o tai labai svarbu realaus pasaulio scenarijams.
  • Granatas yra pagrįstas naujausia .NET technologija ir yra kelių platformų, išplečiamas ir modernus. Jis sukurtas taip, kad jį būtų lengva plėtoti ir tobulinti neprarandant našumo įprastose situacijose. Mes naudojame turtingą .NET bibliotekų ekosistemą, kad išplėstume API ir suteiktume atviras optimizavimo galimybes. Dėl kruopštaus .NET naudojimo "Garnet" pasiekia pažangiausią našumą tiek "Linux", tiek "Windows".


Atvirojo kodo adresas:Hipersaito prisijungimas matomas.
Dokumentacija:Hipersaito prisijungimas matomas.

Granatas turi šiuos pagrindinius privalumus:

  • Serverio pralaidumas (operacijos per sekundę) padidėja keliomis eilėmis mažoms partijoms ir daugeliui klientų sesijų, palyginti su panašia atvirojo kodo talpyklos saugykla.
  • Prekių debesies (Azure) įrenginiuose su pagreitintu TCP įjungtas Windows ir Linux, vienos operacijos delsa yra labai maža (paprastai mažiau nei 300 mikrosekundžių esant 99,9%).
  • Didėjant klientų skaičiui, geresnis mastelio keitimas pasiekiamas su klientų paketais arba be jų.
  • Galimybė naudoti visus serverio kompiuterio procesoriaus / atminties išteklius per vieną bendros atminties serverio egzempliorių (nereikia vidinio mazgo klasterizavimo).
  • Didesnių nei atmintis duomenų rinkinių, perpildytų į vietinius ir debesies saugyklos įrenginius, palaikymas.
  • Duomenų bazės funkcijos, tokios kaip greitas kontrolinis taškas ir atkūrimas bei publikavimas / prenumerata.
  • Kelių mazgų skeveldrų maišos skaidymo (Redis "klasterio" režimas), būsenų perkėlimo ir replikavimo palaikymas.
  • Gerai išbandyta su išsamiu testų rinkiniu (tūkstančiai vienetų testų prieš granatą ir jo saugojimo pakopą Tsavorite).
  • C# kodų bazė, kurią lengva tobulinti ir išplėsti.


Granatas nepalaiko visų "Redis" komandų, specialiai palaikomų komandų, skirtų peržiūrėti:Hipersaito prisijungimas matomas.
Granato projektas apima etaloninį įrankį, skirtą paleisti RESP etalonus naudojant skirtingus klientus, skirtingus darbo krūvius ir skirtingas strategijas, skirtas pralaidumui, našumui ir delsai matuoti. Adresas:Hipersaito prisijungimas matomas.
RESP protokolas:Hipersaito prisijungimas matomas.

Šiame straipsnyje paprastam testavimui naudojami "Redis" integruoti lyginamosios analizės įrankiai, o bandymo aplinka yra tokia:

"Redis Benchmark" našumo testas
https://www.itsvse.com/thread-9645-1-1.html

talpyklaversija
RedisRedis 3.0.504 (00000000/0) 64 bitų
GranatasGranatas 1.0.2 64 bitų; Autonominis režimas


Redis etalonai

Pirmiausia paleiskite "Redis" talpyklą naudodami komandinę eilutę su šia komanda:


Bandymo komanda yra tokia:


Rezultatai yra tokie:



====== RINKINYS ======
  500000 užklausų įvykdyta per 24,38 sekundės
  100 lygiagrečių klientų
  3 baitų naudingoji apkrova
  išlaikyti gyvą: 1

0,03 % < = 1 milisekundės
0,25 % < = 2 milisekundės
2,65 % < = 3 milisekundės
16.49% <= 4 milisekundės
59,95 % < = 5 milisekundės
99.09% <= 6 milisekundės
99,76% <= 7 milisekundės
99.86% <= 8 milisekundės
99.93% <= 9 milisekundės
99.98% <= 10 milisekundžių
99,99% <= 11 milisekundžių
100.00% <= 12 milisekundžių
20512,82 užklausos per sekundę

====== GAUTI ======
  500000 užklausų įvykdyta per 27,41 sekundės
  100 lygiagrečių klientų
  3 baitų naudingoji apkrova
  išlaikyti gyvą: 1

0,03 % < = 1 milisekundės
0,19% <= 2 milisekundės
6,44 % < = 3 milisekundės
25,82 % < = 4 milisekundės
45,65 % < = 5 milisekundės
98,79% <= 6 milisekundės
99.98% <= 7 milisekundės
99.98% <= 8 milisekundės
99.98% <= 9 milisekundės
100.00% <= 9 milisekundės
18238,86 užklausos per sekundę

Granato etalonai

Sukurkite naują .NET 8 konsolės projektą ir pirmiausia nurodykite Microsoft.Garnet paketą naudodami šią komandą:


Kodas yra toks:


Paleisties komanda yra tokia:


Naudojant tą pačią etalono komandą, rezultatas yra toks:



====== RINKINYS ======
  500000 užklausų įvykdyta per 11,51 sekundės
  100 lygiagrečių klientų
  3 baitų naudingoji apkrova
  išlaikyti gyvą: 1

75.51% <= 1 milisekundės
88,24 % < = 2 milisekundės
92,04 % < = 3 milisekundės
99,46 % < = 4 milisekundės
99.98% <= 5 milisekundės
99.99% <= 6 milisekundės
100.00% <= 12 milisekundžių
100.00% <= 12 milisekundžių
43448,04 užklausos per sekundę

====== GAUTI ======
  500000 užklausų įvykdyta per 31,50 sekundės
  100 lygiagrečių klientų
  3 baitų naudingoji apkrova
  išlaikyti gyvą: 1

0,01 % < = 1 milisekundės
0,90 % < = 2 milisekundės
27.25% <= 3 milisekundės
97.65% <= 4 milisekundės
99.82% <= 5 milisekundės
99,94 % < = 6 milisekundės
99.98% <= 7 milisekundės
99.98% <= 9 milisekundės
99.98% <= 10 milisekundžių
99,99% <= 11 milisekundžių
100.00% <= 12 milisekundžių
100.00% <= 12 milisekundžių
15872,01 užklausos per sekundę

Dėl testavimo įrankių, programinės įrangos versijų, bandymo parametrų ir kt. visi lemia skirtingus rezultatus, testai yra tik informaciniai, atlikus paprastus šiame straipsnyje pateiktus testus galima pastebėti, kad "Garnet" delsa yra žymiai mažesnė nei "Redis".

(Pabaiga)




Ankstesnis:.NET/C# atspindžio atributas, kurį galima spręsti pagal nulinius tipus
Kitą:SSE (1) naudoja ASP.NET Core kaip SSE serverį
 Savininkas| Publikuota: 2024-3-28 18:01:32 |
"KeyDB" yra visiškai atvirojo kodo duomenų bazė, kurią maitina "Snap", ir yra greitesnė "Redis" alternatyva. Adresas:https://docs.keydb.dev/
 Savininkas| Paskelbta 2025-9-3 09:36:07 |
GREITESNIS: greitas nuolatinis rakto ir reikšmės saugojimas ir registravimas C# ir C++.
        
Dokumentacija:Hipersaito prisijungimas matomas.
Šaltinis:Hipersaito prisijungimas matomas.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com