Jadual Kandungan
1. Penembusan cache
1.1 Penerangan masalah
(1) Bina seni bina cache berbilang peringkat:
Rumah pangkalan data Redis Bagaimana untuk menyelesaikan masalah biasa caching data berdasarkan Redis

Bagaimana untuk menyelesaikan masalah biasa caching data berdasarkan Redis

May 29, 2023 pm 03:07 PM
redis

1. Penembusan cache

1.1 Penerangan masalah

Penembusan cache adalah untuk meminta kunci yang tidak wujud pada bahagian klien/pelayar tidak ada sumber data dalam pangkalan data Setiap kali permintaan untuk kunci ini tidak dapat diperoleh daripada cache, sumber data akan diminta.

Jika anda menggunakan ID pengguna yang tidak wujud untuk mengakses maklumat pengguna, ia tidak dalam redis mahupun dalam pangkalan data mungkin mengatasi sumber data

Bagaimana untuk menyelesaikan masalah biasa caching data berdasarkan Redis

<.>1.2 Penyelesaian

Data yang tidak boleh wujud dalam cache dan tidak boleh ditanya Memandangkan cache ditulis secara pasif apabila terdapat kesilapan, cache tidak wujud untuk pertimbangan toleransi kesalahan tidak boleh ditanya tidak akan Caching dalam redis akan menyebabkan pangkalan data diminta setiap kali data yang tidak wujud diminta, kehilangan makna caching.

(1) Jika data yang dikembalikan oleh pertanyaan kosong (tidak kira sama ada data itu tidak wujud), kami masih akan cache hasil kosong (null) dan menetapkan masa tamat tempoh hasil kosong menjadi sangat singkat, paling lama Tidak lebih daripada lima minit

(2) Tetapkan senarai boleh diakses (senarai putih): gunakan jenis peta bit untuk mentakrifkan senarai boleh diakses, id senarai digunakan sebagai offset peta bit, setiap satu akses dan id dalam peta bit Bandingkan, jika id akses tiada dalam peta bit, memintas dan tidak membenarkan akses.

(3) Gunakan penapis Bloom

(4) Menjalankan pemantauan data masa nyata dan mendapati bahawa apabila kadar hit Redis menurun dengan cepat, semak objek akses dan akses data, dan sediakan senarai hitam.

2. Pecahan cache

2.1 Penerangan masalah

Apabila pengguna meminta data untuk kunci sedia ada, data untuk kunci dalam redis adalah lapuk permintaan serentak mendapati bahawa cache telah tamat tempoh, sumber data akan diminta untuk memuatkan data dan dicache dalam redis Pada masa ini, bilangan concurrency yang besar mungkin mengatasi perkhidmatan pangkalan data.

2.2 Penyelesaian

Apabila data kunci tertentu diminta dalam jumlah yang banyak, kunci ini adalah data panas dan perlu dipertimbangkan untuk mengelakkan masalah "pecah".

(1) Pratetapkan data popular: Sebelum redis akses puncak, simpan beberapa data popular ke dalam redis terlebih dahulu dan tingkatkan tempoh utama data popular ini

(2) Pelarasan masa nyata : Pantau data mana yang popular di tapak dan laraskan masa tamat tempoh kunci dalam masa nyata

(3) Gunakan kunci:

  • apabila cache tamat tempoh (nilai yang diambil keluar dinilai kosong), bukannya memuatkan db serta-merta.

  • Mula-mula gunakan beberapa operasi alat caching dengan nilai pulangan operasi yang berjaya (seperti SETNX Redis) untuk menetapkan kunci mutex

  • Apabila operasi kembali berjaya, lakukan operasi load db sekali lagi, tetapkan semula cache, dan akhirnya padamkan kekunci mutex; , dan urutan semasa tidur untuk seketika Masa untuk mencuba semula keseluruhan kaedah get cache.

  • 3. Cache Avalanche

3.1 Penerangan MasalahBagaimana untuk menyelesaikan masalah biasa caching data berdasarkan Redis

Data yang sepadan wujud, tetapi data utama Mempunyai tamat tempoh (cache redis akan tamat tempoh dan kunci ini akan dipadamkan secara automatik Pada masa ini, sebilangan besar permintaan serentak mengakses kunci yang berbeza, iaitu, sebilangan besar kunci yang berbeza diakses pada masa yang sama. kunci berada dalam peringkat tamat tempoh, dan pangkalan data akan diminta Sebilangan besar permintaan serentak Ia akan mengatasi pelayan pangkalan data Keadaan ini dipanggil cache avalanche.

3.2 Penyelesaian

Kesan runtuhan salji dari ketidaksahihan cache mempunyai kesan yang dahsyat pada sistem asas! Bagaimana untuk menyelesaikan masalah biasa caching data berdasarkan Redis

(1) Bina seni bina cache berbilang peringkat:

cache nginx + cache redis + cache lain (ehcache, dll.)

  • (2) Gunakan kunci atau baris gilir:

Gunakan kunci atau baris gilir untuk memastikan bahawa tidak akan ada yang besar bilangan pasangan benang Pangkalan data dibaca dan ditulis sekali gus, dengan itu mengelakkan sejumlah besar permintaan serentak daripada jatuh pada sistem storan asas sekiranya berlaku kegagalan. Tidak boleh digunakan untuk situasi konkurensi tinggi

  • (3) Tetapkan bendera tamat tempoh untuk mengemas kini cache:

Rekod sama ada data cache telah tamat tempoh ( Tetapkan jumlah pendahuluan), jika ia tamat tempoh, ia akan mencetuskan pemberitahuan kepada utas lain untuk mengemas kini cache kunci sebenar di latar belakang.

  • (4) Sebarkan masa tamat tempoh cache:

Sebagai contoh, kita boleh berdasarkan masa tamat tempoh asal Tambahkan nilai rawak, seperti rawak 1-5 minit, supaya kadar ulangan setiap masa tamat cache akan dikurangkan, menjadikannya sukar untuk menyebabkan peristiwa kegagalan kolektif.

    Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah biasa caching data berdasarkan 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)
    2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Cara menghidupkan semula rakan sepasukan
    4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
    3 minggu 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)

    Penyelesaian kepada ralat 0x80242008 semasa memasang Windows 11 10.0.22000.100 Penyelesaian kepada ralat 0x80242008 semasa memasang Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

    1. Mulakan menu [Start], masukkan [cmd], klik kanan [Command Prompt], dan pilih Run as [Administrator]. 2. Masukkan arahan berikut mengikut turutan (salin dan tampal dengan teliti): SCconfigwuauservstart=auto, tekan Enter SCconfigbitsstart=auto, tekan Enter SCconfigcryptsvcstart=auto, tekan Enter SCconfigtrustedinstallerstart=auto, tekan Enter SCconfigwuauservtype=share, tekan Enter netstopwuauserv , tekan enter netstopcryptS

    Menganalisis kesesakan fungsi PHP dan meningkatkan kecekapan pelaksanaan Menganalisis kesesakan fungsi PHP dan meningkatkan kecekapan pelaksanaan Apr 23, 2024 pm 03:42 PM

    Kesesakan fungsi PHP membawa kepada prestasi rendah, yang boleh diselesaikan melalui langkah berikut: cari fungsi kesesakan dan gunakan alat analisis prestasi. Keputusan cache untuk mengurangkan pengiraan semula. Memproses tugas secara selari untuk meningkatkan kecekapan pelaksanaan. Optimumkan penggabungan rentetan, sebaliknya gunakan fungsi terbina dalam. Gunakan fungsi terbina dalam dan bukannya fungsi tersuai.

    Strategi dan pengoptimuman caching API Golang Strategi dan pengoptimuman caching API Golang May 07, 2024 pm 02:12 PM

    Strategi caching dalam GolangAPI boleh meningkatkan prestasi dan mengurangkan beban pelayan Strategi yang biasa digunakan ialah: LRU, LFU, FIFO dan TTL. Teknik pengoptimuman termasuk memilih storan cache yang sesuai, caching hierarki, pengurusan ketidaksahihan dan pemantauan dan penalaan. Dalam kes praktikal, cache LRU digunakan untuk mengoptimumkan API untuk mendapatkan maklumat pengguna daripada pangkalan data Data boleh diambil dengan cepat daripada cache Jika tidak, cache boleh dikemas kini selepas mendapatkannya daripada pangkalan data.

    Yang manakah mempunyai prestasi yang lebih baik, erlang atau golang? Yang manakah mempunyai prestasi yang lebih baik, erlang atau golang? Apr 21, 2024 am 03:24 AM

    Terdapat perbezaan prestasi antara Erlang dan Go. Erlang cemerlang dalam concurrency, manakala Go mempunyai daya pemprosesan yang lebih tinggi dan prestasi rangkaian yang lebih pantas. Erlang sesuai untuk sistem yang memerlukan konkurensi tinggi, manakala Go sesuai untuk sistem yang memerlukan daya pemprosesan tinggi dan kependaman rendah.

    Mekanisme caching dan amalan aplikasi dalam pembangunan PHP Mekanisme caching dan amalan aplikasi dalam pembangunan PHP May 09, 2024 pm 01:30 PM

    Dalam pembangunan PHP, mekanisme caching meningkatkan prestasi dengan menyimpan sementara data yang kerap diakses dalam memori atau cakera, dengan itu mengurangkan bilangan akses pangkalan data. Jenis cache terutamanya termasuk memori, fail dan cache pangkalan data. Caching boleh dilaksanakan dalam PHP menggunakan fungsi terbina dalam atau perpustakaan pihak ketiga, seperti cache_get() dan Memcache. Aplikasi praktikal biasa termasuk caching hasil pertanyaan pangkalan data untuk mengoptimumkan prestasi pertanyaan dan caching halaman output untuk mempercepatkan pemaparan. Mekanisme caching berkesan meningkatkan kelajuan tindak balas laman web, meningkatkan pengalaman pengguna dan mengurangkan beban pelayan.

    Bagaimana untuk menggunakan cache Redis dalam penomboran tatasusunan PHP? Bagaimana untuk menggunakan cache Redis dalam penomboran tatasusunan PHP? May 01, 2024 am 10:48 AM

    Menggunakan cache Redis boleh mengoptimumkan prestasi halaman tatasusunan PHP. Ini boleh dicapai melalui langkah berikut: Pasang klien Redis. Sambung ke pelayan Redis. Cipta data cache dan simpan setiap halaman data ke dalam cincangan Redis dengan kunci "halaman:{page_number}". Dapatkan data daripada cache dan elakkan operasi mahal pada tatasusunan besar.

    Bagaimana untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000_Cara untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000 Bagaimana untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000_Cara untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000 May 08, 2024 pm 05:10 PM

    Mula-mula anda perlu menetapkan bahasa sistem kepada paparan Bahasa Cina Mudah dan mulakan semula. Sudah tentu, jika anda telah menukar bahasa paparan kepada Bahasa Cina Ringkas sebelum ini, anda boleh melangkau langkah ini sahaja. Seterusnya, mula mengendalikan pendaftaran, regedit.exe, navigasi terus ke HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage dalam bar navigasi kiri atau bar alamat atas, dan kemudian ubah suai nilai kunci InstallLanguage dan nilai kunci Lalai kepada 0804 (jika anda ingin menukarnya ke Bahasa Inggeris en- kami, anda perlu Mula-mula tetapkan bahasa paparan sistem kepada en-us, mulakan semula sistem dan kemudian tukar semuanya kepada 0409) Anda mesti memulakan semula sistem pada ketika ini.

    Bolehkah navicat menyambung ke redis? Bolehkah navicat menyambung ke redis? Apr 23, 2024 pm 05:12 PM

    Ya, Navicat boleh menyambung ke Redis, yang membolehkan pengguna mengurus kunci, melihat nilai, melaksanakan arahan, memantau aktiviti dan mendiagnosis masalah. Untuk menyambung ke Redis, pilih jenis sambungan "Redis" dalam Navicat dan masukkan butiran pelayan.

    See all articles