Jadual Kandungan
1. Aplikasi cache Redis
3.2 Penyelesaian
Rajah proses adalah seperti berikut:
3.3 Perbandingan penyelesaian
3. Pecahan cache
4.1 Pengenalan
Tukar masa tamat tempoh
Kunci Teragih
4. Cache avalanche
Rumah pangkalan data Redis Mari kita bincangkan tentang tiga isu caching Redis

Mari kita bincangkan tentang tiga isu caching Redis

Mar 31, 2022 pm 12:01 PM
redis

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Redis Ia terutamanya memperkenalkan tiga jenis masalah cache, iaitu penembusan cache, pecahan cache dan runtuhan cache saya harap ia berguna kepada semua orang.

Mari kita bincangkan tentang tiga isu caching Redis

Pembelajaran yang disyorkan: Tutorial pembelajaran Redis

1. Aplikasi cache Redis

Dalam senario perniagaan sebenar kami, Redis biasanya digunakan bersama dengan pangkalan data lain untuk mengurangkan tekanan pada pangkalan data bahagian belakang , seperti dengan hubungan pangkalan data MySQL digunakan bersama.

Redis akan cache data yang kerap ditanya dalam MySQL , seperti Hot data, supaya apabila pengguna datang untuk mengakses, mereka tidak perlu bertanya dalam MySQL, tetapi terus mendapatkan data cache dalam Redis, sekali gus mengurangkan tekanan bacaan pada pangkalan data bahagian belakang.

Jika data yang ditanya oleh pengguna tidak tersedia dalam Redis, permintaan pertanyaan pengguna akan dipindahkan ke pangkalan data MySQL Apabila MySQL mengembalikan data kepada klien, ia juga akan cache data dalam dalam Redis, supaya apabila pengguna membaca semula, mereka boleh mendapatkan data terus daripada Redis. Carta alir adalah seperti berikut:

Sudah tentu, kami tidak sentiasa boleh menggunakan Redis sebagai pangkalan data cache. Pelayaran yang lancar, kita akan menghadapi tiga masalah cache biasa:

  • Penembusan cache
  • 2.1 Pengenalan
  • Penembusan Cache bermaknaapabila pengguna menanyakan data tertentu, ia tidak wujud dalam Redis Data ini bermaksud bahawa cache tidak terkena Pada masa ini, permintaan pertanyaan akan dipindahkan ke pangkalan data lapisan kegigihan MySQL. Didapati bahawa data tidak wujud dalam MySQL hanya boleh mengembalikan objek kosong, yang bermaksud bahawa pertanyaan itu gagal. Jika terdapat terlalu banyak permintaan sedemikian, atau jika pengguna menggunakan permintaan sedemikian untuk melakukan serangan berniat jahat, ia akan memberi banyak tekanan kepada pangkalan data MySQL dan bahkan runtuh Fenomena ini dipanggil penembusan cache.

2.2 Penyelesaian

Caching objek kosong Apabila MySQL mengembalikan objek kosong, Redis cache objek dan menetapkan masa tamat tempoh untuknya.

Apabila pengguna memulakan permintaan yang sama sekali lagi,
objek kosong

akan diperoleh daripada cache Permintaan pengguna disekat dalam lapisan cache, dengan itu melindungi pangkalan data bahagian belakang, tetapi Terdapat juga beberapa masalah dengan pendekatan ini Walaupun permintaan tidak boleh memasuki MSQL, strategi ini akan

menduduki ruang cache Redis.

Bloom filter Pertama, pengguna boleh melawati Semua kekunci data tempat liputan disimpan dalam penapis Bloom (juga dipanggil pemanasan cache) Apabila pengguna memintanya, ia akan melalui penapis Bloom terlebih dahulu, Penapis Bloom Ia akan dinilai sama ada yang diminta. kunci wujud

Jika ia tidak wujud, permintaan akan ditolak secara langsung. Jika tidak, pertanyaan akan terus dilaksanakan Pertama, pergi ke cache untuk membuat pertanyaan ke pangkalan data untuk membuat pertanyaan. Berbanding dengan kaedah pertama, menggunakan kaedah penapis

Bloom adalah lebih cekap dan praktikal.

Rajah proses adalah seperti berikut:

Pemanasan awal cache: merujuk kepada proses pemanasan awal cache terlebih dahulu apabila sistem bermula. Data yang berkaitan dimuatkan ke dalam sistem cache Redis. Ini mengelakkan memuatkan data apabila pengguna memintanya.

2.3 Perbandingan penyelesaian

Kedua-dua penyelesaian boleh menyelesaikan masalah penembusan cache, tetapi senario penggunaannya berbeza:

Cache objek kosong: Sesuai untuk senario di mana bilangan kunci untuk data kosong adalah terhad dan kebarangkalian permintaan kunci berulang adalah tinggi.


Penapis Bloom : Sesuai untuk senario di mana kunci data kosong berbeza dan kebarangkalian permintaan kunci berulang adalah rendah.

3. Pecahan cache

3.1 Pengenalan

Pecahan cache merujuk kepada The data yang ditanya oleh pengguna tidak wujud dalam cache, tetapi wujud dalam pangkalan data bahagian belakang Sebab fenomena ini adalah biasanya disebabkan oleh tamat tempoh kunci dalam cache . Sebagai contoh, kunci data panas menerima sejumlah besar akses serentak sepanjang masa Jika kunci tiba-tiba gagal pada masa tertentu, sejumlah besar permintaan serentak akan memasuki pangkalan data bahagian belakang, menyebabkan tekanannya meningkat serta-merta. Fenomena ini dipanggil pecahan cache.

3.2 Penyelesaian

Tukar masa tamat tempoh

Tetapkan data hotspot tidak pernah Luput.

Kunci Teragih

Menggunakan kaedah Kunci Teragih untuk mereka bentuk semula cache Penggunaan kaedah adalah seperti berikut:

  • Dikunci: Apabila kami menanyakan data mengikut kunci, kami mula-mula menanyakan cache Jika tidak , penguncian dilakukan melalui kunci yang diedarkan Proses pertama untuk memperoleh kunci memasuki pangkalan data bahagian belakang untuk membuat pertanyaan dan menampan hasil pertanyaan kepada Redis.
  • Membuka kunci: Apabila proses lain mendapati bahawa kunci diduduki oleh proses tertentu, mereka memasuki keadaan menunggu Selepas membuka kunci, proses lain mengakses kunci cache mengikut giliran.

3.3 Perbandingan penyelesaian

Tidak pernah luput: Penyelesaian ini tidak mempunyai Tetapan yang sebenar masa tamat sebenarnya menghapuskan siri bahaya yang disebabkan oleh kekunci panas, tetapi akan terdapat ketidakkonsistenan data, dan kerumitan kod akan meningkat.

Mutex lock: Penyelesaian ini agak mudah, tetapi ia mempunyai bahaya tersembunyi tertentu Jika terdapat masalah dengan proses pembinaan cache atau ia mengambil masa yang lama , mungkin terdapat masalah Terdapat risiko kunci dan sekatan kolam benang, tetapi kaedah ini boleh mengurangkan beban storan bahagian belakang dengan lebih baik dan mencapai konsistensi yang lebih baik.

4. Cache avalanche

4.1 Pengenalan

Cache avalanche merujuk kepada kumpulan besar dalam kunci cache tamat tempoh pada masa yang sama, dan jumlah akses data adalah sangat besar pada masa ini, menyebabkan peningkatan mendadak dalam tekanan pada pangkalan data bahagian belakang, malah fenomena ini dipanggil cache avalanche. Ia berbeza daripada pecahan cache. Pecahan cache berlaku apabila kunci tempat liputan tiba-tiba tamat tempoh apabila jumlah konkurensi sangat besar, manakala salji cache berlaku apabila sejumlah besar kunci tamat tempoh pada masa yang sama, jadi ia bukan susunan yang sama. magnitud sama sekali.

4.2 Penyelesaian

Mengendalikan Tamat Tempoh

Cache runtuhan salji dan cache adalah serupa, jadi anda juga boleh menggunakan kaedah

data tempat liputan tidak pernah luput untuk mengurangkan tamat tempoh serentak sejumlah besar kunci. Selain itu, tetapkan masa tamat tempoh rawak untuk kunci untuk mengelakkan tamat tempoh kunci secara berpusat.

redis ketersediaan tinggi

Satu Redis mungkin gagal kerana runtuhan salji, jadi anda boleh menambah beberapa Redis lagi ,

bina kluster, jika satu gagal, yang lain boleh terus bekerja.

Pembelajaran yang disyorkan:
Tutorial pembelajaran Redis

Atas ialah kandungan terperinci Mari kita bincangkan tentang tiga isu caching Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara membersihkan data redis Cara membersihkan data redis Apr 10, 2025 pm 10:06 PM

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara Membaca Gilir Redis Cara Membaca Gilir Redis Apr 10, 2025 pm 10:12 PM

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Cara menggunakan perintah redis Cara menggunakan perintah redis Apr 10, 2025 pm 08:45 PM

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Cara menggunakan kunci redis Cara menggunakan kunci redis Apr 10, 2025 pm 08:39 PM

Menggunakan REDIS untuk mengunci operasi memerlukan mendapatkan kunci melalui arahan SETNX, dan kemudian menggunakan perintah luput untuk menetapkan masa tamat tempoh. Langkah-langkah khusus adalah: (1) Gunakan arahan SETNX untuk cuba menetapkan pasangan nilai utama; (2) Gunakan perintah luput untuk menetapkan masa tamat tempoh untuk kunci; (3) Gunakan perintah DEL untuk memadam kunci apabila kunci tidak lagi diperlukan.

Cara membaca kod sumber redis Cara membaca kod sumber redis Apr 10, 2025 pm 08:27 PM

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Cara menggunakan baris arahan redis Cara menggunakan baris arahan redis Apr 10, 2025 pm 10:18 PM

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Cara Mengkonfigurasi Masa Pelaksanaan Skrip Lua di Centos Redis Cara Mengkonfigurasi Masa Pelaksanaan Skrip Lua di Centos Redis Apr 14, 2025 pm 02:12 PM

Pada sistem CentOS, anda boleh mengehadkan masa pelaksanaan skrip LUA dengan mengubah fail konfigurasi REDIS atau menggunakan arahan REDIS untuk mengelakkan skrip jahat daripada memakan terlalu banyak sumber. Kaedah 1: Ubah suai fail konfigurasi Redis dan cari fail konfigurasi Redis: Fail konfigurasi Redis biasanya terletak di /etc/redis/redis.conf. Edit Fail Konfigurasi: Buka fail konfigurasi menggunakan editor teks (seperti Vi atau nano): sudovi/etc/redis/redis.conf Tetapkan had masa pelaksanaan skrip lua: Tambah atau ubah suai baris berikut dalam fail konfigurasi untuk menetapkan masa pelaksanaan maksimum skrip lua (unit: milidor)

See all articles