Rumah > pangkalan data > Redis > teks badan

Analisis punca: pemadaman berganda tertunda bagi cache redis

WBOY
Lepaskan: 2022-08-24 17:34:20
ke hadapan
3209 orang telah melayarinya

Pembelajaran yang disyorkan: Tutorial video Redis

Mengapa cache dipadamkan dan bukannya dikemas kini?

Jika ia adalah kemas kini dan terdapat masalah transaksi yang diedarkan, cache mungkin diubah suai dan pengubahsuaian pangkalan data mungkin gagal. Jika anda hanya memadamkan cache, walaupun pengubahsuaian pangkalan data gagal, pertanyaan seterusnya akan terus mengambil data daripada pangkalan data, dan tiada data kotor akan muncul.

Apakah pemadaman berganda tertunda?

Iaitu, apabila menambah, memadam atau mengubah suai kelas entiti, cache kelas entiti mesti dikosongkan Kedudukan pembersihan adalah sebelum dan selepas kaedah pengendalian pangkalan data.

Menggunakan kaedah pembuktian secara bercanggah

Hanya padam dahulu



Analisis punca: pemadaman berganda tertunda bagi cache redis

Hanya padam kemudian

Analisis punca: pemadaman berganda tertunda bagi cache redis

Kesimpulan

Ini membawa kepada kesimpulan bahawa pemadaman hadapan dan pemadaman belakang adalah bermasalah. Oleh itu, menggunakan strategi pemadaman berganda tertunda

Pemikiran 2: Mengapa ia ditangguhkan

Ia masih menjadi bukti dengan percanggahan. Situasi dalam gambar di bawah adalah situasi di mana cache lama masih wujud selepas pemadaman berganda Kelewatan adalah untuk memastikan operasi pertukaran cache transaksi lain telah selesai sebelum mengubah suai pangkalan data -> mengosongkan cache.

Analisis punca: pemadaman berganda tertunda bagi cache redis

Tambahan: Mengapakah kita perlu menangguhkan pemadaman berganda untuk memastikan ketekalan cache? Untuk menangguhkan pemadaman dua kali bagi memastikan ketekalan cache

Sebelum mengubah suai data pangkalan data, anda perlu memadam redis sekali: Ini adalah untuk memastikan bahawa dalam selang antara pengubahsuaian data pangkalan data dan pemadaman data redis, Jika ada hit, dijamin data ini tidak wujud dalam redis. Tanpa pemadaman ini, apabila data pangkalan data telah diubah suai, data lama masih boleh dibaca dari redis, menyebabkan data tidak konsisten.

Pemadaman kedua ialah selepas mengubah suai data pangkalan data Pada masa ini, data yang sepadan dalam redis perlu dipadamkan sekali lagi data. Jika ada permintaan, Kemudian data lama akan dicache semula dalam redis, tetapi data dalam pangkalan data akan diubah suai seterusnya.
  • Jadi mengapa anda perlu menangguhkan pemadaman redis untuk tempoh masa tertentu selepas pangkalan data diubah suai buat kali kedua?
  • Untuk menunggu pembacaan pangkalan data sebelumnya, tunggu datanya ditulis ke cache, dan akhirnya padamkan data kotor kali ini, jadi inilah masa yang diperlukan untuk data itu dihantar dari pangkalan data ke cache pelayan untuk menulis
Walau bagaimanapun, masa kelewatan pemadaman berganda tertunda sangat sukar ditentukan, jadi pemadaman berganda tertunda tidak disyorkan

Analisis punca: pemadaman berganda tertunda bagi cache redisMenurut pertimbangan menyeluruh, walaupun pangkalan data diubah suai dahulu, Selepas memadam cache, akan ada tempoh masa tertentu apabila data lama dibaca, yang biasanya diterima.

Selagi cache dipadamkan tepat pada masanya, urutan lain boleh membaca nilai terkini.

Pada masa yang sama, untuk memastikan cache akan dipadamkan, mq boleh digunakan untuk memastikan cache akan dipadamkan


Jika mesej tidak digunakan berulang kali dalam mq , ia akan diserahkan kepada pengguna lain untuk dimakan (Padam cache)

Pembelajaran yang disyorkan:

Tutorial video Redis

Atas ialah kandungan terperinci Analisis punca: pemadaman berganda tertunda bagi cache redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:jb51.net
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!