Jadual Kandungan
1. Aplikasi cache Redis
Kunci teragih
3.3 Perbandingan penyelesaian
4. Cache avalanche
4.1 Pengenalan
4.2 Penyelesaian
Mengendalikan Tamat Tempoh
redis ketersediaan tinggi
Rumah pangkalan data Redis Contoh analisis masalah cache Redis

Contoh analisis masalah cache Redis

May 29, 2023 pm 09:50 PM
redis

1. Aplikasi cache Redis

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

Redis akan cache data yang kerap ditanya dalam MySQL , seperti data hotspot, supaya apabila pengguna datang untuk mengakses, mereka tidak perlu pergi ke MySQL. Daripada bertanya, data cache dalam Redis diperoleh secara langsung, dengan itu 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, data akan dicache dalam Redis pada masa yang sama, supaya apabila pengguna membaca semula, mereka boleh mendapatkan data terus daripada Redis. Carta alir adalah seperti berikut:

Contoh analisis masalah cache Redis

Apabila menggunakan Redis sebagai pangkalan data cache, kita pasti akan menghadapi tiga masalah caching biasa

  • Penembusan Cache

  • Penembusan Cache

  • Cache Avalanche

2. Penembusan Cache

2.1 Pengenalan

Penembusan Cache bermaksud bahawa apabila pengguna menanyakan data tertentu, data tidak wujud dalam Redis, iaitu, cache tidak melanda Pada masa ini, permintaan pertanyaan akan dialihkan ke pangkalan data lapisan kegigihan MySQL, dan didapati bahawa data itu berlaku. tidak wujud dalam MySQL sama ada, MySQL hanya boleh mengembalikan objek kosong, menunjukkan bahawa pertanyaan itu gagal. Jika terdapat banyak permintaan sedemikian, atau pengguna menggunakan permintaan sedemikian untuk melakukan serangan berniat jahat, ia akan memberi tekanan yang besar pada pangkalan data MySQL dan bahkan runtuh Fenomena ini dipanggil penembusan cache.

Contoh analisis masalah cache Redis

2.2 Penyelesaian

Caching objek kosong

Apabila MySQL Bila objek kosong dikembalikan, Redis menyimpan cache objek dan menetapkan masa tamat untuknya. Apabila pengguna memulakan permintaan yang sama sekali lagi, objek kosong akan diperoleh daripada cache Permintaan pengguna disekat dalam lapisan cache, sekali gus melindungi pangkalan data bahagian belakang Terdapat juga beberapa masalah walaupun permintaan tidak boleh memasuki MSQL, strategi ini akan menduduki ruang cache Redis.

Contoh analisis masalah cache Redis

Penapis Bloom

Simpan dahulu semua kunci data tempat liputan yang boleh diakses oleh pengguna Dalam Bloom penapis (juga dipanggil pemanasan cache) , apabila pengguna memintanya, ia akan terlebih dahulu melalui penapis Bloom Penapis Bloom akan menentukan sama ada kunci yang diminta wujud . maka permintaan akan ditolak terus, jika tidak, pertanyaan akan terus dilaksanakan, mula-mula pergi ke cache untuk membuat pertanyaan, jika tiada cache, kemudian pergi ke pangkalan data untuk membuat pertanyaan. Berbanding dengan kaedah pertama, menggunakan kaedah penapis Bloom adalah lebih cekap dan praktikal. Rajah proses adalah seperti berikut:

Contoh analisis masalah cache Redis

Pemanasan awal cache ialah proses memuatkan data yang berkaitan ke dalam sistem cache Redis terlebih dahulu sebelum sistem bermula. 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 bermakna data yang ditanya oleh pengguna tidak wujud dalam cache , tetapi ia wujud dalam pangkalan data bahagian belakang Sebab fenomena ini 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 tempat liputan agar tidak tamat tempoh.

Kunci teragih

Gunakan kaedah kunci teragih untuk mereka bentuk semula penggunaan cache Prosesnya adalah seperti berikut:

  • Kunci: Apabila kami menanyakan data mengikut kunci, kami terlebih dahulu menanyakan cache Jika tidak, kami menguncinya melalui kunci yang diedarkan, dan proses pertama untuk mendapatkan kunci ialah Enter pertanyaan pangkalan data bahagian belakang 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 kekunci cache mengikut giliran.

Contoh analisis masalah cache Redis

3.3 Perbandingan penyelesaian

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

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

4. Cache avalanche

4.1 Pengenalan

Cache avalanche bermakna sejumlah besar kunci dalam cache tamat tempoh pada masa yang sama , dan pada masa ini data Bilangan lawatan adalah sangat besar, yang membawa kepada peningkatan mendadak dalam tekanan pada pangkalan data bahagian belakang dan mungkin menyebabkan ia ranap Fenomena ini dipanggil runtuhan cache. Ia berbeza daripada pecahan cache. Pecahan cache berlaku apabila kunci panas tertentu tiba-tiba tamat tempoh apabila jumlah konkurensi sangat besar, manakala longsoran cache berlaku apabila sejumlah besar kunci tamat tempoh pada masa yang sama, jadi ia bukan susunan yang sama magnitud sama sekali.

Contoh analisis masalah cache Redis

4.2 Penyelesaian

Mengendalikan Tamat Tempoh

Dalam untuk mengurangkan kerosakan cache dan masalah runtuhan salji yang disebabkan oleh sejumlah besar kunci tamat tempoh pada masa yang sama, strategi untuk tidak pernah tamat tempoh data hotspot boleh diguna pakai, yang serupa dengan salji cache. Di samping itu, untuk mengelakkan kunci daripada tamat tempoh pada masa yang sama, anda boleh menetapkan masa tamat tempoh rawak untuknya.

redis ketersediaan tinggi

Satu Redis mungkin gagal kerana runtuhan salji, jadi anda boleh menambah beberapa Redis lagi , bina kluster, jika ada yang menutup telefon, yang lain boleh terus bekerja.

Atas ialah kandungan terperinci Contoh analisis masalah cache 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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 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 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 menggunakan redis berulir tunggal Cara menggunakan redis berulir tunggal Apr 10, 2025 pm 07:12 PM

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

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 melaksanakan redis yang mendasari Cara melaksanakan redis yang mendasari Apr 10, 2025 pm 07:21 PM

Redis menggunakan jadual hash untuk menyimpan data dan menyokong struktur data seperti rentetan, senarai, jadual hash, koleksi dan koleksi yang diperintahkan. Redis berterusan data melalui snapshots (RDB) dan menambah mekanisme tulis sahaja (AOF). Redis menggunakan replikasi master-hamba untuk meningkatkan ketersediaan data. Redis menggunakan gelung acara tunggal untuk mengendalikan sambungan dan arahan untuk memastikan atom dan konsistensi data. Redis menetapkan masa tamat tempoh untuk kunci dan menggunakan mekanisme memadam malas untuk memadamkan kunci tamat tempoh.

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 Melihat Semua Kekunci di Redis Cara Melihat Semua Kekunci di Redis Apr 10, 2025 pm 07:15 PM

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

See all articles