国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah pangkalan data Redis Analisis isu storan kunci panas dalam Redis dan bincangkan tentang penyelesaian kepada pengecualian cache

Analisis isu storan kunci panas dalam Redis dan bincangkan tentang penyelesaian kepada pengecualian cache

May 19, 2022 am 10:15 AM
redis

Artikel ini akan membincangkan tiga pengecualian cache biasa dalam Redis: penembusan cache, pecahan cache dan runtuhan cache Melaluinya, kami akan membincangkan isu penyimpanan kunci panas di Redis.

Analisis isu storan kunci panas dalam Redis dan bincangkan tentang penyelesaian kepada pengecualian cache

Cadangan berkaitan: "Analisis konsistensi cache Redis, penembusan cache, pecahan cache dan isu runtuhan cache bersama-sama "

Penembusan cache, pecahan cache dan avalanche cache adalah isu yang sering perlu dipertimbangkan semasa temu bual Redis dan pembangunan sebenar. Masih ramai yang tidak jelas tentang asal usul, punca dan penyelesaian masalah ini. Malah, kita boleh mencari penyelesaian yang baik untuk ketiga-tiga situasi ini dengan menganalisis prinsip yang dihasilkan dengan teliti. [Cadangan berkaitan: Tutorial Video Redis]

Artikel ini membantu anda memahami dengan cepat tiga masalah ini melalui definisi, kes, bahaya dan penyelesaian.

Saya percaya anda telah melihat banyak penyelesaian kepada ketiga-tiga masalah ini di Internet Adakah sebahagian daripadanya adalah penyelesaian 正確的 yang sama? Artikel ini juga akan menganalisis kelebihan dan kekurangan penyelesaian sedemikian satu demi satu.

Gambar di bawah menunjukkan garis besar kandungan artikel ini, dan artikel itu juga menganalisis dan meringkaskan perkara ini.

Analisis isu storan kunci panas dalam Redis dan bincangkan tentang penyelesaian kepada pengecualian cache

Perbandingan ketiga-tiga

  • Penembusan cache, penembusan cache dan Cache avalanche disebabkan oleh fakta bahawa data dalam cache tidak wujud, menyebabkan pangkalan data digunakan untuk menanyakan data.

  • Memandangkan data cache tidak wujud, semua permintaan akan pergi ke pangkalan data, yang akan menyebabkan tekanan berlebihan pada pangkalan data atau malah ranap perkhidmatan, menjadikan keseluruhan sistem tidak dapat digunakan.

Penembusan cache

Definisi: Penembusan cache adalah kerana data yang diminta oleh klien tidak wujud dalam cache , dan kemudian menanyakan pangkalan data Walau bagaimanapun, pangkalan data tidak mempunyai data yang ingin ditanya oleh pelanggan, menyebabkan setiap permintaan melalui operasi pertanyaan pangkalan data. 真正的問題在于該數(shù)據(jù)本身就是不存在的.

Contoh: Apabila pelanggan meminta butiran produk, ia membawa ID produk Pada masa ini, ID produk tidak wujud (sama ada dalam cache atau dalam pangkalan data). Akibatnya, setiap kali data produk dengan ID ini diminta, ia akan pergi ke pangkalan data.

Hazard: Memandangkan data yang sepadan dengan parameter yang diminta tidak wujud sama sekali, pangkalan data akan diminta setiap kali, meningkatkan tekanan pada pangkalan data atau perkhidmatan ranap, malah menjejaskan modul perniagaan lain. Ini sering berlaku dengan pengguna 惡意請求.

Penyelesaian:

1. Cache nilai nol berdasarkan parameter yang diminta. Dan tetapkan masa tamat tempoh untuk nilai ini, anda boleh tetapkan masa menjadi lebih pendek.

2. Gunakan penapis Bloom pertama melalui penapis Bloom Jika ia wujud dalam penapis, tanya pangkalan data dan kemudian tambahkannya pada cache. Jika ia tidak wujud, ia akan kembali secara langsung bahawa data pelanggan tidak wujud.

3. Memandangkan penembusan cache mungkin merupakan permintaan berniat jahat yang dimulakan oleh pengguna, IP pengguna boleh direkodkan dan permintaan IP berniat jahat boleh disekat.

Analisis penyelesaian:

  • Penyelesaian pertama akan cache nilai kosong untuk kunci yang tidak wujud. Katakan terdapat terlalu banyak permintaan sedemikian, adakah mereka semua akan menetapkan cache nilai nol satu demi satu Pada masa ini, akan terdapat sejumlah besar nilai null cache tidak sah dalam Redis. Dengan mengandaikan bahawa kunci sedemikian ialah ID produk atau artikel, selepas kami menetapkan nilai nol, jika data ditambahkan di latar belakang, kami harus mengemas kini nilai cache yang sepadan dengan ID dan menetapkan masa tamat tempoh yang munasabah.

  • Penyelesaian kedua juga merupakan penyelesaian yang paling biasa digunakan dalam industri. Kelebihan penapis Bloom ialah ia berdasarkan pelaksanaan Redis, operasi memori dan pelaksanaan asasnya juga sangat menjimatkan memori. Apabila data berjaya ditambahkan di latar belakang, ID data akan ditambahkan pada penapis Bloom dan bahagian hadapan terlebih dahulu melalui penapis Bloom untuk mengesahkan sama ada ia wujud semasa membuat permintaan. Tetapi penapis Bloom juga mempunyai kelemahan, iaitu masalah konflik cincang. Apakah maksud konflik hash di sini? Maksudnya, apabila berbilang ID dicincang, bit cincang yang diperoleh adalah nilai yang sama, yang membawa kepada salah menilai apabila mengesahkan sama ada ia wujud. Ada sesuatu dalam dirinya, tetapi tiada apa-apa dalam hasilnya. 布隆過濾器的一個(gè)弊端就是,它說有并不一定有,它說沒有就一點(diǎn)是沒有的。

  • Pilihan ketiga ialah untuk memulakan sejumlah besar permintaan untuk pengguna yang sama dalam tempoh masa, mencetuskan mekanisme penembusan cache Pada masa ini, kami boleh memaparkan akses pelanggan. Walau bagaimanapun, jika penyerang melancarkan serangan DDOS, dia tidak dapat mengelak sepenuhnya daripada serangan sedemikian, jadi penyelesaian ini bukanlah penyelesaian yang baik.

Ringkasan rancangan:

  • Kami mula-mula menambah penyelesaian ketiga pada tahap permintaan, mewujudkan mekanisme pengehadan semasa dan mekanisme senarai hitam IP untuk mengawal beberapa permintaan yang berniat jahat, jika ia adalah salah penilaian, kami boleh melaksanakan operasi seperti nyahsekat IP. . Lapisan cache dilaksanakan menggunakan penyelesaian pertama. Tetapkan masa cache yang munasabah.

  • Untuk senario perniagaan yang boleh bertolak ansur dengan salah penilaian, anda boleh terus menggunakan penyelesaian kedua. Berasaskan Redis sepenuhnya, mengurangkan kerumitan sistem.

Pecahan cache

Definisi: Pecahan cache adalah kerana kunci hotspot tidak wujud, menyebabkan pangkalan data menjadi diakses Pertanyaan. Peningkatan tekanan pada pangkalan data. Tekanan ini mungkin seketika atau berpanjangan. 真正的問題在于該key是存在,只是緩存中不存在,導(dǎo)致走數(shù)據(jù)庫操作.

Contohnya: Terdapat produk popular Apabila melihat butiran produk, pengguna membawa ID produk untuk mendapatkan maklumat terperinci produk. Pada masa ini, data dalam cache telah tamat tempoh, jadi semua permintaan masuk mesti pergi ke pangkalan data untuk membuat pertanyaan.

Hazard: Berbanding dengan penembusan cache, data wujud dalam pangkalan data, tetapi kerana cache telah tamat tempoh, ia perlu pergi ke pangkalan data sekali, dan kemudian menambahnya pada cache, dan permintaan seterusnya akan pergi seperti biasa. Kemudaratan yang dipanggil juga ditujukan kepada peringkat pangkalan data.

Penyelesaian:

1. Untuk permintaan pertama, didapati tiada data dalam cache Pada masa ini, pangkalan data pertanyaan telah ditambahkan pada cache. Dengan cara ini, permintaan seterusnya tidak perlu melalui pertanyaan pangkalan data.

2. Tingkatkan masa tamat logik perniagaan. Apabila menyediakan cache, kita boleh menambah masa tamat tempoh cache. Setiap kali anda membaca, buat pertimbangan Jika masa tamat tempoh kurang daripada masa semasa, cetuskan utas latar belakang, pergi ke pangkalan data untuk menarik data, dan kemudian kemas kini data cache dan masa tamat cache. Malah, prinsipnya adalah untuk memanjangkan tempoh cache untuk cache pada tahap kod.

3. Laksanakan penambahan data pada cache melalui latar belakang. Contohnya, sebelum adegan jualan kilat bermula, inventori produk ditambahkan pada cache, supaya apabila permintaan pengguna datang, ia akan pergi terus ke cache.

4. Tidak pernah tamat tempoh. Apabila menetapkan masa tamat tempoh untuk cache, pastikan ia tidak pernah tamat tempoh. Urutan berasingan dibuka di latar belakang untuk mengekalkan masa tamat tempoh dan kemas kini data cache ini.

Analisis program:

  • Kunci mutex menjamin bahawa hanya satu permintaan pergi ke pangkalan data, yang merupakan kelebihan. Walau bagaimanapun, untuk sistem teragih, kunci teragih digunakan untuk melaksanakan kunci teragih Pelaksanaan kunci teragih itu sendiri mempunyai kesukaran tertentu, yang meningkatkan kerumitan sistem.

  • Penyelesaian kedua dilaksanakan dengan menggunakan penyelesaian yang Redis tidak tamat tempoh dan perniagaan tamat tempoh. Ia memastikan bahawa setiap permintaan boleh mendapatkan data, dan pada masa yang sama, benang latar belakang boleh digunakan untuk mengemas kini data. Kelemahannya ialah urutan latar belakang belum selesai mengemas kini data Pada masa ini, data yang diminta adalah data lama, yang mungkin mempunyai kelemahan dalam senario perniagaan dengan keperluan masa nyata yang tinggi.

  • Penyelesaian ketiga ialah menggunakan pemanasan awal cache dan cache setiap kali ia dimuatkan, yang serupa dengan penyelesaian kedua. Walau bagaimanapun, terdapat juga masalah kemas kini data panas, jadi penyelesaian ini sesuai untuk data yang tidak memerlukan data masa nyata yang tinggi.

  • Penyelesaian keempat adalah serupa dengan penyelesaian kedua dan ketiga Atas dasar ini, pengoptimuman tertentu telah dibuat, menggunakan urutan tak segerak latar belakang untuk mengemas kini data cache secara aktif. Kesukarannya terletak pada mengawal kekerapan kemas kini.

Ringkasan penyelesaian:

  • Untuk data dengan keperluan masa nyata yang tinggi, penyelesaian pertama disyorkan, walaupun secara teknikalnya sukar tetapi boleh memproses data dalam masa nyata. Jika sesetengah permintaan menunggu lama, pengecualian boleh dikembalikan dan pelanggan boleh menghantar semula permintaan tersebut.

  • Untuk data yang tidak memerlukan prestasi masa nyata yang tinggi, pilihan keempat boleh digunakan.

Cache avalanche

Definisi: Pecahan cache yang dinyatakan sebelum ini adalah disebabkan oleh titik panas tertentu dalam cache. kunci gagal, menyebabkan sejumlah besar permintaan pergi ke pangkalan data. Walau bagaimanapun, salji cache sebenarnya sama, tetapi yang ini lebih serius kebanyakan kunci cache tidak sah, dan bukannya satu atau dua kunci.

Contoh: Dalam sistem e-dagang, data produk di bawah kategori tertentu adalah tidak sah dalam cache. Walau bagaimanapun, banyak permintaan daripada sistem semasa adalah untuk data produk di bawah kategori ini. Ini akan menyebabkan semua permintaan melalui pertanyaan pangkalan data.

Hazard: Disebabkan oleh kemasukan sejumlah besar permintaan dalam sekelip mata, setiap permintaan mesti ditanya dalam pangkalan data. Kemasukan serta-merta trafik ke dalam pangkalan data secara serius meningkatkan beban pada pangkalan data dan dengan mudah boleh menyebabkan lumpuh pangkalan data langsung.

Penyelesaian:

1. Oleh kerana sebilangan besar cache tamat tempoh pada masa tertentu, ini bermakna masa tamat cache agak tertumpu. Kami secara langsung menetapkan masa tamat tempoh menjadi tidak fokus dan rawak. Dengan cara ini, masa tamat tempoh cache tidak akan sangat tertumpu, dan tidak akan terdapat sejumlah besar permintaan kepada pangkalan data untuk operasi pertanyaan pada masa yang sama.

2. Cache pelbagai peringkat. Daripada hanya bergantung pada Redis untuk caching, kita juga boleh menggunakan memcached untuk caching (ini hanya contoh, perkhidmatan caching lain juga boleh digunakan). Apabila menyimpan data, buat cache untuk Redis dan cache untuk memcached. Jika Redis gagal, kita boleh menggunakan memcached.

3. Kunci Mutex. Dalam pecahan cache, kami menyebut penggunaan kunci mutex, dan kami juga boleh menggunakannya dalam kes runtuhan salji.

4. Tetapkan bendera tamat tempoh. Malah, anda juga boleh menggunakan tidak tamat tempoh kekal yang dinyatakan dalam pecahan cache. Apabila meminta, masa tamat tempoh ditentukan Jika masa tamat tempoh menghampiri, bendera tamat tempoh ditetapkan dan urutan bebas dicetuskan untuk mengemas kini cache.

Analisis penyelesaian:

  • Penyelesaian pertama menggunakan masa caching nombor rawak untuk memastikan masa tamat tempoh kunci tersebar. Kesukarannya terletak pada cara menetapkan masa cache Untuk sesetengah data yang memerlukan masa cache yang singkat dan jumlah data yang sangat besar, penyelesaian ini memerlukan kawalan masa yang munasabah.

  • Penyelesaian kedua menggunakan cache berbilang peringkat, yang boleh memastikan semua permintaan dicache. Walau bagaimanapun, ini meningkatkan kesukaran seni bina sistem dan pelbagai masalah lain, seperti caching kemas kini berbilang peringkat.

  • Pilihan ketiga menggunakan kunci mutex.

  • Penyelesaian keempat menggunakan masa cache logik, yang menjamin tekanan cache sistem dengan baik.

Ringkasan rancangan:

Dalam projek sebenar, adalah disyorkan untuk mencuba pilihan pertama, kedua dan keempat yang akan menjadi lebih baik.

Ringkasan

  • Penembusan cache adalah kerana pangkalan data itu sendiri tidak mempunyai data.

  • Pecahan cache dan avalanche cache bermakna data wujud dalam pangkalan data, tetapi data dalam cache tidak sah, menyebabkan pangkalan data disoal semula dan kemudian ditambahkan pada cache.

  • Pecahan cache adalah untuk beberapa kekunci panas, manakala runtuhan cache ialah kegagalan cache berskala besar. Kedua-dua prinsip itu sebenarnya sama, kecuali pembahagian kunci cache adalah berbeza.

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

Atas ialah kandungan terperinci Analisis isu storan kunci panas dalam Redis dan bincangkan tentang penyelesaian kepada pengecualian cache. 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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

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)

Titik pengoptimuman Laravel8 Titik pengoptimuman Laravel8 Apr 18, 2025 pm 12:24 PM

Laravel 8 menyediakan pilihan berikut untuk Pengoptimuman Prestasi: Konfigurasi Cache: Gunakan Redis ke Pemacu Cache, Fasad Cache, Pandangan Cache, dan Page Page. Pengoptimuman pangkalan data: Menetapkan pengindeksan, gunakan skop pertanyaan, dan gunakan hubungan fasih. Pengoptimuman JavaScript dan CSS: Gunakan Kawalan Versi, Gabungan dan Secrink Aset, Gunakan CDN. Pengoptimuman kod: Gunakan pakej pemasangan komposer, gunakan fungsi pembantu Laravel, dan ikuti piawaian PSR. Pemantauan dan Analisis: Gunakan Pengakap Laravel, gunakan teleskop, memantau metrik aplikasi.

Bagaimana menggunakan penyelesaian cache Redis untuk merealisasikan keperluan senarai kedudukan produk dengan cekap? Bagaimana menggunakan penyelesaian cache Redis untuk merealisasikan keperluan senarai kedudukan produk dengan cekap? Apr 19, 2025 pm 11:36 PM

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...

Apa yang perlu dilakukan jika cache redis gagal dalam boot musim bunga? Apa yang perlu dilakukan jika cache redis gagal dalam boot musim bunga? Apr 19, 2025 pm 08:03 PM

Dalam springboot, gunakan redis untuk objek OAuth2Authorization Cache OAuth2. Dalam aplikasi Springboot, gunakan SpringsecurityoAuth2Authorizationsererver ...

Pek pengembangan terbaik Laravel yang disyorkan: 2024 Alat penting Pek pengembangan terbaik Laravel yang disyorkan: 2024 Alat penting Apr 30, 2025 pm 02:18 PM

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.

Pembinaan Persekitaran Laravel dan Konfigurasi Asas (Windows/Mac/Linux) Pembinaan Persekitaran Laravel dan Konfigurasi Asas (Windows/Mac/Linux) Apr 30, 2025 pm 02:27 PM

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.

Peranan Redis: Meneroka Keupayaan Penyimpanan Data dan Pengurusan Peranan Redis: Meneroka Keupayaan Penyimpanan Data dan Pengurusan Apr 22, 2025 am 12:10 AM

Redis memainkan peranan penting dalam penyimpanan dan pengurusan data, dan telah menjadi teras aplikasi moden melalui pelbagai struktur data dan mekanisme kegigihannya. 1) REDIS menyokong struktur data seperti rentetan, senarai, koleksi, koleksi yang diperintahkan dan jadual hash, dan sesuai untuk logik perniagaan cache dan kompleks. 2) Melalui dua kaedah ketekunan, RDB dan AOF, Redis memastikan penyimpanan yang boleh dipercayai dan pemulihan data yang cepat.

Cara mengkonfigurasi log pertanyaan perlahan dalam centos redis Cara mengkonfigurasi log pertanyaan perlahan dalam centos redis Apr 14, 2025 pm 04:54 PM

Dayakan log pertanyaan perlahan Redis pada sistem CentOS untuk meningkatkan kecekapan diagnostik prestasi. Langkah -langkah berikut akan membimbing anda melalui konfigurasi: Langkah 1: Cari dan edit fail konfigurasi Redis terlebih dahulu, cari fail konfigurasi Redis, biasanya terletak di /etc/redis/redis.conf. Buka fail konfigurasi dengan arahan berikut: Sudovi/etc/redis/redis.conf Langkah 2: Laraskan parameter log pertanyaan yang perlahan dalam fail konfigurasi, cari dan ubah suai parameter berikut: #Slow query ambang (ms) lambat-log-lox-than10000 #

Dalam persekitaran multi-nod, bagaimana untuk memastikan bahawa tugas masa @scheduled Spring Boot hanya dilaksanakan pada satu nod? Dalam persekitaran multi-nod, bagaimana untuk memastikan bahawa tugas masa @scheduled Spring Boot hanya dilaksanakan pada satu nod? Apr 19, 2025 pm 10:57 PM

Penyelesaian pengoptimuman untuk tugas masa springboot dalam persekitaran pelbagai nod sedang membangunkan musim bunga ...

See all articles