Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 3522|Jawab: 2

[Sumber] Perbandingan sederhana dari cache Garnet dan Redis dikembangkan dengan .NET

[Salin tautan]
Dipaparkan pada 2024-3-28 18:00:42 | | | |
Garnet adalah jenis penyimpanan cache jarak jauh baru yang dikembangkan oleh Microsoft Research yang menawarkan beberapa manfaat unik:

  • Garnet mengambil protokol lini RESP yang populer sebagai titik awal, yang memungkinkan untuk menggunakan Garnet dari klien Redis yang tidak dimodifikasi yang tersedia di sebagian besar bahasa pemrograman saat ini, seperti StackExchange.Redis di C#.
  • Garnet menawarkan throughput dan skalabilitas yang lebih baik dengan banyak koneksi klien dan batch kecil dibandingkan dengan penyimpanan cache sumber terbuka yang sebanding, menghemat biaya untuk aplikasi dan layanan besar.
  • Garnet menunjukkan latensi klien yang sangat rendah (biasanya kurang dari 300 mikrodetik pada 99,9%) menggunakan VM Commodity Cloud (Azure) dengan TCP yang dipercepat diaktifkan, yang sangat penting untuk skenario dunia nyata.
  • Garnet didasarkan pada teknologi .NET terbaru dan lintas platform, dapat diperluas, dan modern. Ini dirancang agar mudah dikembangkan dan berkembang tanpa mengorbankan kinerja dalam situasi umum. Kami memanfaatkan ekosistem perpustakaan .NET yang kaya untuk memperluas API dan memberikan peluang pengoptimalan terbuka. Berkat penggunaan .NET yang cermat, Garnet mencapai kinerja canggih di Linux dan Windows.


Alamat Sumber Terbuka:Login hyperlink terlihat.
Dokumentasi:Login hyperlink terlihat.

Garnet memiliki manfaat utama berikut:

  • Throughput server (operasi per detik) meningkat beberapa urutan besarnya untuk batch kecil dan banyak sesi klien relatif terhadap penyimpanan cache sumber terbuka yang sebanding.
  • Pada komputer cloud komoditas (Azure) dengan TCP yang dipercepat diaktifkan di Windows dan Linux, latensi per operasi sangat rendah (biasanya kurang dari 300 mikrodetik pada 99,9%).
  • Seiring bertambahnya jumlah klien, skalabilitas yang lebih baik dicapai dengan atau tanpa batching klien.
  • Kemampuan untuk menggunakan semua sumber daya CPU/memori komputer server melalui satu instans server memori bersama (tidak perlu pengelompokan intra-node).
  • Dukungan untuk himpunan data yang lebih besar dari memori yang meluap ke perangkat penyimpanan lokal dan cloud.
  • Fitur basis data seperti pos pemeriksaan cepat dan pemulihan dan publikasi/berlangganan.
  • Dukungan untuk partisi hash serpihan multi-node (mode "cluster" Redis), migrasi status, dan replikasi.
  • Diuji dengan baik dengan rangkaian pengujian yang komprehensif (ribuan pengujian unit terhadap Garnet dan tingkat penyimpanannya Tsavorite).
  • Basis kode C# yang mudah dikembangkan dan diperluas.


Garnet tidak mendukung semua perintah Redis, khususnya perintah yang didukung untuk melihat:Login hyperlink terlihat.
Proyek Garnet mencakup alat Tolok Ukur untuk menjalankan tolok ukur RESP menggunakan klien yang berbeda, beban kerja yang berbeda, dan kebijakan yang berbeda untuk mengukur throughput, kinerja, dan latensi. Alamat:Login hyperlink terlihat.
Protokol RESP:Login hyperlink terlihat.

Artikel ini menggunakan alat pembandingan bawaan Redis untuk pengujian sederhana, dan lingkungan pengujiannya adalah sebagai berikut:


tembolokversi
RedisRedis 3.0.504 (00000000/0) 64 bit
GarnetGarnet 1.0.2 64 bit; Mode mandiri


Tolok ukur Redis

Pertama, luncurkan cache Redis menggunakan baris perintah dengan perintah berikut:


Perintah uji adalah sebagai berikut:


Hasilnya adalah sebagai berikut:



====== SET ======
  500000 permintaan diselesaikan dalam 24,38 detik
  100 klien paralel
  Muatan 3 byte
  tetap hidup: 1

0,03% <= 1 milidetik
0,25% <= 2 milidetik
2,65% <= 3 milidetik
16,49% <= 4 milidetik
59,95% <= 5 milidetik
99,09% <= 6 milidetik
99,76% <= 7 milidetik
99,86% <= 8 milidetik
99,93% <= 9 milidetik
99,98% <= 10 milidetik
99,99% <= 11 milidetik
100,00% <= 12 milidetik
20512.82 permintaan per detik

====== MENDAPATKAN ======
  500000 permintaan selesai dalam 27,41 detik
  100 klien paralel
  Muatan 3 byte
  tetap hidup: 1

0,03% <= 1 milidetik
0,19% <= 2 milidetik
6,44% <= 3 milidetik
25,82% <= 4 milidetik
45,65% <= 5 milidetik
98,79% <= 6 milidetik
99,98% <= 7 milidetik
99,98% <= 8 milidetik
99,98% <= 9 milidetik
100,00% <= 9 milidetik
18238.86 permintaan per detik

Tolok ukur garnet

Buat proyek konsol .NET 8 baru dan referensikan paket Microsoft.Garnet terlebih dahulu dengan perintah berikut:


Kodenya adalah sebagai berikut:


Perintah startup adalah sebagai berikut:


Dengan menggunakan perintah benchmark yang sama, hasilnya adalah sebagai berikut:



====== SET ======
  500000 permintaan selesai dalam 11,51 detik
  100 klien paralel
  Muatan 3 byte
  tetap hidup: 1

75,51% <= 1 milidetik
88,24% <= 2 milidetik
92,04% <= 3 milidetik
99,46% <= 4 milidetik
99,98% <= 5 milidetik
99,99% <= 6 milidetik
100,00% <= 12 milidetik
100,00% <= 12 milidetik
43448.04 permintaan per detik

====== MENDAPATKAN ======
  500000 permintaan selesai dalam 31,50 detik
  100 klien paralel
  Muatan 3 byte
  tetap hidup: 1

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

Karena alat pengujian, versi perangkat lunak, parameter pengujian, dll., semuanya menghasilkan hasil yang berbeda, pengujian hanya untuk referensi, melalui pengujian sederhana dalam artikel ini, dapat dilihat bahwa Garnet memiliki latensi yang jauh lebih rendah daripada Redis.

(Akhir)




Mantan:.NET/C# refleksi, yang dapat dinilai dengan jenis null
Depan:SSE (1) menggunakan ASP.NET Core sebagai server SSE
 Tuan tanah| Dipaparkan pada 2024-3-28 18:01:32 |
KeyDB adalah database sumber terbuka sepenuhnya yang didukung oleh Snap dan merupakan alternatif yang lebih cepat untuk Redis. Alamat:https://docs.keydb.dev/
 Tuan tanah| Dipaparkan pada 2025-9-3 09:36:07 |
LEBIH CEPAT: Penyimpanan nilai kunci persisten bersamaan yang cepat dan pencatatan di C# dan C++.
        
Dokumentasi:Login hyperlink terlihat.
Sumber:Login hyperlink terlihat.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com