Rumah  >  Artikel  >  pangkalan data  >  Perbandingan prestasi kunci teragih yang dilaksanakan oleh Redis

Perbandingan prestasi kunci teragih yang dilaksanakan oleh Redis

王林
王林asal
2023-06-20 17:46:391833semak imbas

Apabila skala aplikasi Internet menjadi lebih besar dan lebih besar, sistem yang diedarkan menjadi semakin biasa. Dalam sistem ini, kunci teragih adalah ciri penting. Oleh kerana permintaan yang kuat untuk kunci yang diedarkan, terdapat pelbagai kaedah pelaksanaan. Antaranya, Redis ialah alat popular yang digunakan secara meluas dalam pelaksanaan kunci teragih. Dalam artikel ini, kami akan meneroka perbandingan prestasi kunci teragih yang dilaksanakan oleh Redis.

1. Konsep asas Redis

Sebelum membincangkan prestasi kunci yang diedarkan Redis, kita perlu memahami beberapa konsep asas Redis.

  1. Redis

Redis ialah sistem storan nilai kunci berprestasi tinggi, yang sering digunakan dalam senario seperti caching dan baris gilir mesej.

  1. Arahan SETNX

Arahan SETNX digunakan untuk menetapkan nilai dalam Redis Ia hanya boleh ditetapkan dengan jayanya jika kunci tidak wujud. Perintah ini juga boleh digunakan untuk melaksanakan kunci yang diedarkan.

  1. Perintah EXPIRE

Perintah EXPIRE digunakan untuk menetapkan masa tamat tempoh untuk kunci Setelah tamat tempoh, kunci akan dipadamkan secara automatik.

  1. Arahan DEL

Arahan DEL digunakan untuk memadamkan kunci dan nilai yang sepadan dengannya.

2. Cara Redis melaksanakan kunci teragih

Redis boleh melaksanakan kunci teragih melalui arahan SETNX. Langkah pelaksanaan khusus ialah:

  1. Apabila meminta untuk mendapatkan kunci, klien menghantar arahan SETNX kepada Redis untuk meminta menetapkan kunci dan menetapkan masa tamat tempoh. Jika kunci tidak wujud, tetapan berjaya dan pelanggan memperoleh kunci.
  2. Jika SETNX gagal, ini bermakna kunci sudah wujud dan pelanggan gagal mendapatkan kunci.
  3. Selepas memperoleh kunci, pelanggan perlu terus menghantar paket degupan jantung untuk mengekalkan kesahihan kunci.
  4. Apabila pelanggan melepaskan kunci, ia perlu menghantar arahan DEL kepada Redis untuk memadamkan kunci.

3. Perbandingan prestasi kunci yang diedarkan oleh Redis

Untuk membandingkan prestasi pelbagai pelaksanaan kunci yang diedarkan Redis, kami menggunakan model ujian penanda aras, yang merangkumi:

  1. Diuji menggunakan satu nod Redis.
  2. Uji menggunakan Kluster Redis.
  3. Gunakan berbilang ujian pelanggan yang dijalankan pada dua nod Redis.

Melalui ujian ketiga-tiga model di atas, kami memperoleh keputusan berikut.

  1. Ujian nod Redis tunggal

Pada satu nod Redis, kami menggunakan klien tunggal untuk menguji dan menetapkan masa kunci kepada 1 saat. Keputusan ujian adalah seperti berikut:

  • Bilangan permintaan untuk berjaya mendapatkan kunci: 498614
  • Masa operasi: 10.02 saat
  1. Redis Ujian kluster

Pada Kluster Redis, kami menggunakan lapan nod untuk ujian dan menetapkan masa kunci kepada 1 saat. Keputusan ujian adalah seperti berikut:

  • Bilangan permintaan untuk berjaya mendapatkan kunci: 337854
  • Masa operasi: 10.11 saat
  1. Berbilang ujian pelanggan

Kami memulakan dua pelanggan pada dua nod Redis bebas, dan setiap pelanggan menghantar 1000 permintaan. Dua pelanggan masing-masing menggunakan arahan SET untuk bersaing mendapatkan kunci untuk melaksanakan kunci teragih. Apabila salah satu pelanggan menghantar arahan SET, pelanggan lain akan menghantar permintaan GET untuk menyemak sama ada kunci itu wujud Jika ia tidak wujud, pelanggan akan menghantar arahan SET semula. Keputusan ujian adalah seperti berikut:

  • Bilangan permintaan untuk berjaya mendapatkan kunci: 7220
  • Masa operasi: 1.66 saat

4 🎜>

Selepas ujian, kita boleh membuat kesimpulan berikut:

    Pada satu nod Redis, hampir tiada perbezaan dalam prestasi pelaksanaan kunci teragih.
  1. Pada Kluster Redis, prestasi pelaksanaan kunci teragih sedikit berbeza, tetapi ia tidak begitu jelas.
  2. Dalam ujian berbilang pelanggan, prestasi kunci yang diedarkan berdasarkan arahan SETNX adalah lemah Apabila konkurensi kecil, kestabilan lebih baik, tetapi apabila konkurensinya besar, ia akan membawa kepada a sebilangan besar percubaan semula dan kesilapan.
Ringkasnya, prestasi pelaksanaan kunci teragih berdasarkan SETNX adalah tidak ideal. Untuk meningkatkan prestasi, anda boleh mempertimbangkan untuk menggunakan algoritma Redlock, yang menggunakan berbilang nod Redis untuk melaksanakan kunci teragih dan mempunyai prestasi yang lebih stabil. Walau bagaimanapun, kita perlu memilih dan melaksanakan pelaksanaan kunci teragih yang paling sesuai dengan kita berdasarkan situasi sebenar.

Atas ialah kandungan terperinci Perbandingan prestasi kunci teragih yang dilaksanakan oleh Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn