


Mari kita bincangkan tentang penembusan cache, runtuhan cache, pecahan cache dan konsistensi cache dalam Redis
Nov 24, 2021 pm 07:42 PMArtikel ini akan memberi anda pemahaman ringkas tentang penembusan cache, avalanche cache, pecahan cache dan konsistensi cache dalam Redis, dan memperkenalkan penyelesaian untuk penembusan cache dan avalanche cache saya harap ia akan membantu semua orang!
Cache avalanche
Cache gagal di kawasan yang besar pada masa yang sama, dan permintaan seterusnya akan jatuh pada pangkalan data, menyebabkan pangkalan data tidak dapat untuk menahan sejumlah besar permintaan dalam tempoh masa yang singkat dan runtuh
Sebagai contoh, pada halaman utama e-dagang, masa tamat tempoh utama semua halaman utama ialah 12 jam dan dimuat semula pada 12 tengah hari ialah acara jualan kilat pada 0:00 dan sejumlah besar pengguna masuk, tetapi semua kunci dalam cache tidak sah pada masa itu, semua Permintaan akan jatuh ke pangkalan data Jika pangkalan data tidak dapat mengendalikannya, ia hanya akan ranap. Atau jika redis tidak berfungsi, sejumlah besar permintaan akan jatuh ke mysql, menyebabkan ia ditutup. [Cadangan berkaitan: Tutorial video Redis]
Penyelesaian
Jadi dalam kes ini, masa tamat tempoh setiap kunci perlu ditambah untuk mengelakkan sebilangan besar kegagalan utama pada masa yang sama Jika ia adalah penempatan kelompok redis, data tempat liputan boleh diedarkan ke perpustakaan yang berbeza.
Sebelumnya: Cuba pastikan ketersediaan gugusan redis yang tinggi, tebus masa mati mesin secepat mungkin dan pilih strategi penyingkiran memori yang sesuai
Sedang berjalan : Had semasa histrix cache ehcache tempatan dan turun taraf untuk mengelakkan ranap mysql
Selepas itu: Data yang disimpan oleh mekanisme kegigihan redis dipulihkan ke cache secepat mungkin .
Penembusan Cache
Sebilangan besar kunci yang diminta tidak wujud dalam cache Contohnya, penggodam mencipta kunci yang tidak wujud dalam cache dan memulakan sejumlah besar permintaan, mengakibatkan sejumlah besar permintaan digugurkan ke pangkalan data.
Penyelesaian
Pertama sekali, anda harus melakukan pengesahan parameter input asas dan memintas parameter haram secara langsung Contohnya, tanya id pangkalan data tidak boleh kurang daripada 0, sahkan alamat e-mel Format, dsb.
Jika cache mahupun pangkalan data tidak dapat mencari data untuk kunci tertentu, tulis kunci untuk redis, nilainya batal dan tetapkan tamat tempoh masa untuk mengelakkan permintaan seterusnya Fall pada pangkalan data.
Melalui penapis Bloom, penapis Bloom boleh menentukan dengan mudah sama ada data yang diberikan wujud dalam data besar-besaran Semua kemungkinan nilai yang diminta boleh disimpan dalam penapis Bloom, apabila permintaan datang dalam, ia mula-mula menentukan sama ada permintaan yang dihantar oleh pengguna wujud dalam penapis Bloom dan memintasnya secara langsung jika ia tidak wujud.
Pecahan cache
Pecahan cache merujuk kepada kunci yang sangat panas dan sentiasa membawa konkurensi besar menumpukan pada mengakses titik ini, apabila kunci tamat tempoh , konkurensi besar yang berterusan menembusi cache dan meminta terus ke pangkalan data
Konsistensi cache
Jika konsistensi yang kuat diperlukan, cache tidak boleh digunakan kerana jaminan Tanpa konsistensi yang kukuh, hanya konsistensi akhirnya boleh dijamin.
- Padam cache dahulu, dan kemudian kemas kini pangkalan data
Jika kemas kini pangkalan data gagal, pangkalan data masih mempunyai data lama, redis kosong dan data tidak akan menjadi tidak konsisten. Membaca kosong akan menyebabkan Pergi ke pangkalan data untuk bertanya dan kemudian mengemas kini ke cache.
- Sertai baris gilir dan lakukan operasi bersiri
Padam cache dahulu, dan kemudian kemas kini pangkalan data Masalah juga mungkin berlaku dalam senario serentak tinggi, seperti memadamkan cache . Pangkalan data belum dikemas kini lagi dan mendapati bahawa redis kosong dan kemudian mengemas kininya kepada redis pada masa ini, dan kemudian pangkalan data akan dikemas kini menyebabkan pangkalan data dan data redis menjadi tidak konsisten Pada masa ini, anda boleh Meletakkan operasi mengemas kini data ke dalam baris gilir, dan operasi bersiri tidak akan berlaku, tetapi ini biasanya tidak disyorkan kerana ia akan mengurangkan kecekapan.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !
Atas ialah kandungan terperinci Mari kita bincangkan tentang penembusan cache, runtuhan cache, pecahan cache dan konsistensi cache dalam Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pakej lanjutan Laravel yang penting untuk 2024 termasuk: 1 Laraveldebrugbar, yang digunakan untuk memantau dan debug kod; 2. Laraveltelescope, menyediakan pemantauan aplikasi terperinci; 3. Laravelhorizon, menguruskan tugas -tugas redis. Pek pengembangan ini dapat meningkatkan kecekapan pembangunan dan prestasi aplikasi.

Langkah -langkah untuk membina persekitaran Laravel pada sistem operasi yang berbeza adalah seperti berikut: 1.Windows: Gunakan XAMPP untuk memasang PHP dan komposer, konfigurasikan pembolehubah persekitaran, dan pasang Laravel. 2.MAC: Gunakan homebrew untuk memasang PHP dan komposer dan pasang Laravel. 3.Linux: Gunakan Ubuntu untuk mengemas kini sistem, pasang PHP dan komposer, dan pasang Laravel. Perintah dan laluan khusus setiap sistem adalah berbeza, tetapi langkah -langkah teras adalah konsisten untuk memastikan pembinaan lancar persekitaran pembangunan Laravel.

Redis lebih tinggi daripada pangkalan data tradisional dalam senario latency yang tinggi dan rendah, tetapi tidak sesuai untuk pertanyaan kompleks dan pemprosesan transaksi. 1.Redis menggunakan penyimpanan memori, bacaan cepat dan tulis kelajuan, sesuai untuk kesesuaian tinggi dan keperluan latensi yang rendah. 2. Pangkalan data tradisional didasarkan pada cakera, sokongan pertanyaan kompleks dan pemprosesan transaksi, dan mempunyai konsistensi dan ketekunan data yang kuat. 3. Redis sesuai sebagai suplemen atau pengganti pangkalan data tradisional, tetapi ia perlu dipilih mengikut keperluan perniagaan tertentu.

Sistem Linux mengehadkan sumber pengguna melalui perintah ULIMIT untuk mengelakkan penggunaan sumber yang berlebihan. 1.Ulimit adalah arahan shell terbina dalam yang boleh mengehadkan bilangan deskriptor fail (-N), saiz memori (-V), kiraan thread (-u), dan lain-lain, yang dibahagikan kepada had lembut (nilai berkesan semasa) dan had keras (had atas maksimum). 2. Gunakan perintah ULIMIT secara langsung untuk pengubahsuaian sementara, seperti ULIMIT-N2048, tetapi hanya sah untuk sesi semasa. 3. Untuk kesan tetap, anda perlu mengubah suai /etc/security/limits.conf dan fail konfigurasi PAM, dan tambah sessionrequiredpam_limits.so. 4. Perkhidmatan SystemD perlu menetapkan LIM dalam fail unit

Redis terutamanya pangkalan data, tetapi ia lebih daripada sekadar pangkalan data. 1. Sebagai pangkalan data, Redis menyokong kegigihan dan sesuai untuk keperluan berprestasi tinggi. 2. Sebagai cache, Redis meningkatkan kelajuan tindak balas aplikasi. 3. Sebagai broker mesej, REDIS menyokong mod penerbitan-langganan, sesuai untuk komunikasi masa nyata.

Redis melampaui pangkalan data SQL kerana prestasi dan fleksibiliti yang tinggi. 1) Redis mencapai bacaan dan tulis kelajuan yang sangat cepat melalui penyimpanan memori. 2) Ia menyokong pelbagai struktur data, seperti senarai dan koleksi, sesuai untuk pemprosesan data yang kompleks. 3) Model tunggal-threaded memudahkan pembangunan, tetapi konkurensi tinggi mungkin menjadi kesesakan.

Langkah -langkah untuk membina laman web PHP yang dinamik menggunakan PHPStudy termasuk: 1. Pasang PHPStudy dan mulakan perkhidmatan; 2. Konfigurasi Direktori Root Laman Web dan Sambungan Pangkalan Data; 3. Tulis skrip PHP untuk menghasilkan kandungan dinamik; 4. Debug dan mengoptimumkan prestasi laman web. Melalui langkah -langkah ini, anda boleh membina laman web PHP dinamik yang berfungsi sepenuhnya dari awal.

Redisisanopen-Source, In-MenoryDataStructureStoreusedasadatabase, Cache, andMessageBroker, ExcellingInspeedandversatility.Iswidelyededforcaching, Real-Timeanalytics, sessionManagement, danSleaderboardsDuetoitssupportorvariousdatastructures
