Pembelajaran yang disyorkan: Tutorial video Redis
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.
Iaitu, apabila menambah, memadam atau mengubah suai kelas entiti, cache kelas entiti mesti dikosongkan Kedudukan pembersihan adalah sebelum dan selepas kaedah pengendalian pangkalan data.
Hanya padam dahulu

Hanya padam kemudian
Ini membawa kepada kesimpulan bahawa pemadaman hadapan dan pemadaman belakang adalah bermasalah. Oleh itu, menggunakan strategi pemadaman berganda tertunda
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.
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.Menurut 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)
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!