Rumah >pangkalan data >Redis >Bagaimanakah kunci hotspot dijana dalam Redis? Bagaimana untuk menyelesaikannya?

Bagaimanakah kunci hotspot dijana dalam Redis? Bagaimana untuk menyelesaikannya?

青灯夜游
青灯夜游ke hadapan
2021-09-22 20:18:194871semak imbas

Artikel berikut akan membawa anda memahami kekunci tempat liputan dalam Redis, memperkenalkan sebab penjanaan kekunci tempat liputan, cara untuk menemui kekunci tempat liputan dan penyelesaian kepada kekunci tempat liputan, saya harap ia dapat membantu semua orang.

Bagaimanakah kunci hotspot dijana dalam Redis? Bagaimana untuk menyelesaikannya?

Punca Hot Key

1. Data yang digunakan oleh pengguna jauh lebih besar daripada data dihasilkan

Masalah kunci panas ialah terdapat sejumlah besar permintaan untuk mengakses kunci tetap pada redis pada saat tertentu, menyebabkan kerosakan cache dan semua permintaan mengenai DB, mengatasi masalah perkhidmatan cache dan perkhidmatan DB, sekali gus menjejaskan ketersediaan perkhidmatan aplikasi. [Cadangan berkaitan: Tutorial video Redis]

Yang paling biasa ialah carian hangat di Weibo, seperti perkahwinan/curang selebriti XX. Kemudian Kunci tentang bintang XX akan meningkat serta-merta, dan masalah data panas akan berlaku. Weibo juga ranap dari semasa ke semasa.

Begitu juga, berita hangat, komen hangat, siaran langsung selebriti, dsb. yang diterbitkan dan ditonton secara meluas Senario tipikal membaca lebih banyak dan kurang menulis juga akan menyebabkan isu hangat.

2 Permintaan tertumpu dalam serpihan, melebihi had prestasi pelayan tunggal

Apabila membaca data pada bahagian pelayan untuk akses, data sering diakses Semasa pembahagian 分片, kunci yang sepadan akan diakses pada pelayan hos tertentu Apabila akses melebihi had pelayan, ia akan menyebabkan masalah kunci panas.

Bahaya isu utama yang hangat

Bagaimanakah kunci hotspot dijana dalam Redis? Bagaimana untuk menyelesaikannya?

1 kad rangkaian fizikal.

Apabila permintaan untuk Kunci tempat liputan tertentu melebihi had atas kad rangkaian hos pada hos tertentu, perkhidmatan lain dalam pelayan tidak akan dapat diteruskan kerana tumpuan trafik yang berlebihan .

2. Terdapat terlalu banyak permintaan dan perkhidmatan pemecahan cache dikalahkan.

Jika tempat liputan terlalu pekat dan cache kekunci tempat liputan terlalu besar dan melebihi kapasiti cache semasa, perkhidmatan pemecahan cache akan terbeban.

3. Kerosakan DB, menyebabkan runtuhan salji perniagaan.

Apabila perkhidmatan cache ranap dan permintaan lain dijana pada masa ini, ia akan dicache pada latar belakang DB Disebabkan prestasi DB itu sendiri yang lemah, penembusan permintaan adalah mudah berlaku apabila menghadapi permintaan yang besar, yang akan membawa kepada fenomena longsor dan menjejaskan prestasi peralatan.

Penemuan kunci panas

1 Gunakan pengalaman perniagaan untuk menganggarkan kunci panas yang mana

Malah, kaedah ini agak boleh dilaksanakan. Sebagai contoh, jika produk tertentu sedang dalam jualan kilat, kunci produk ini boleh dinilai sebagai kunci panas. Kelemahannya adalah jelas.

2. Kumpul pada klien

Kaedah ini adalah untuk menambah barisan kod untuk statistik data sebelum beroperasi semula. Terdapat banyak cara untuk mengumpul data, dan ia juga boleh menghantar mesej pemberitahuan kepada sistem komunikasi luaran. Kelemahannya ialah ia menyebabkan pencerobohan ke dalam kod klien.

3. Koleksi pada lapisan Proksi

klien
proksi
redis1
redis2
redis3

Sesetengah seni bina kluster adalah seperti berikut Proksi boleh menjadi Twemproxy, iaitu pintu masuk bersatu. Pengumpulan dan pelaporan boleh dilakukan pada lapisan Proksi, tetapi kelemahannya adalah jelas.

4 Gunakan arahan terbina dalam redis

  • arahan pantau : Perintah ini boleh ditangkap. dalam masa nyata Pelayan redis menerima arahan dan kemudian menulis kod untuk mengira kekunci panas. Sudah tentu, terdapat juga alat analisis siap sedia tersedia untuk anda gunakan, seperti redis-faina. Walau bagaimanapun, dalam keadaan konkurensi yang tinggi, arahan ini mempunyai bahaya tersembunyi iaitu peningkatan mendadak dalam ingatan dan juga akan mengurangkan prestasi redis.
  • parameter hotkeys: redis 4.0.3 menyediakan fungsi penemuan kunci panas redis-cli. Cuma tambahkan pilihan –hotkeys semasa melaksanakan redis-cli. Walau bagaimanapun, apabila parameter ini dilaksanakan, jika terdapat banyak kunci, pelaksanaan akan menjadi lebih perlahan.

5 Tangkap dan nilaikan paket anda sendiri

Pelanggan Redis menggunakan protokol TCP untuk berinteraksi dengan pelayan protokol ialah RESP. Tulis program anda sendiri untuk memantau port, menghuraikan data mengikut peraturan protokol RESP, dan menjalankan analisis. Kelemahannya ialah kos pembangunan yang tinggi, penyelenggaraan yang sukar, dan kemungkinan kehilangan paket.

Lima pilihan di atas masing-masing mempunyai kelebihan dan kekurangan tersendiri. Hanya buat keputusan berdasarkan senario perniagaan anda.

Penyelesaian untuk Kunci Hotspot

1 Gunakan cache tahap kedua

Sebagai contoh, gunakanehcache, spring cache, atau bahkan HashMap akan berjaya. Selepas anda menemui kunci panas, muatkan kunci panas ke dalam JVM sistem.

Untuk permintaan kunci panas jenis ini, ia akan diambil terus dari jvm tanpa pergi ke lapisan redis.

Andaikan terdapat 100,000 permintaan untuk kunci yang sama pada masa ini Jika tiada cache setempat, 100,000 permintaan ini akan dihantar terus ke redis yang sama.
Sekarang andaikan bahawa lapisan aplikasi anda mempunyai 50 mesin OK, anda juga mempunyai cache jvm. 100,000 permintaan ini diagihkan secara sama rata, dan setiap mesin mempunyai 2,000 permintaan Nilai akan diperoleh daripada JVM dan kemudian data akan dikembalikan. Ini mengelakkan situasi di mana ratusan ribu permintaan dihantar ke redis yang sama.

2. Baca dan tulis pemisahan

Baca dan tulis pemisahan adalah untuk menghantar permintaan untuk Write yang sama ke modul Master , dan Hantar permintaan Read ke modul ReadOnly.

Nod baca sahaja dalam modul boleh dikembangkan lagi dan kunci ini boleh disimpan dalam berbilang redis. Apabila permintaan kunci panas masuk, kami secara rawak memilih pelayan redis dengan sandaran, mengakses nilai dan mengembalikan data. Ini berkesan menyelesaikan masalah bacaan panas.

Pengasingan membaca dan menulis juga mempunyai kelebihan pengembangan fleksibel keupayaan tempat liputan baca, keupayaan untuk menyimpan sejumlah besar kunci tempat liputan dan kemesraan pelanggan.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !

Atas ialah kandungan terperinci Bagaimanakah kunci hotspot dijana dalam Redis? Bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam