Rumah >pangkalan data >Redis >Apakah maksud pemadaman berganda redis cache tertunda?
Apabila mengemas kini data, anda mungkin menghadapi masalah transaksi yang diedarkan, menyebabkan kemas kini cache berjaya tetapi pengubahsuaian pangkalan data gagal. Walaupun pengubahsuaian pangkalan data gagal dan hanya cache dipadamkan, pertanyaan seterusnya masih akan mendapatkan data terus daripada pangkalan data dan tiada data kotor akan dihasilkan.
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 kedua-dua pemadaman depan dan 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: Mengapa kita perlu menangguhkan pemadaman berganda untuk memastikan ketekalan cache
Mengapa kita perlu menangguhkan pemadaman berganda? Pastikan ketekalan cache
Sebelum mengubah suai data pangkalan data, redis perlu dipadamkan terlebih dahulu: ini untuk memastikan bahawa semasa selang antara pengubahsuaian data pangkalan data dan pemadaman data redis, jika terdapat hit , pastikan data ini tidak wujud dalam redis. Jika tiada operasi pemadaman dilakukan, data lama masih boleh dibaca daripada redis selepas data pangkalan data telah diubah suai, yang akan membawa kepada ketidakkonsistenan data.
Pemadaman kedua ialah selepas mengubah suai data pangkalan data Pada masa ini, data yang sepadan dalam redis perlu dipadamkan sekali lagi pengubahsuaian. Pada masa ini, jika terdapat permintaan, data lama akan dicache semula dalam redis Namun, data dalam pangkalan data akan diubah suai seterusnya dalam redis.
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 data ditulis ke cache, dan akhirnya padamkan data kotor kali ini, jadi data dihantar dari pangkalan data ke pelayan + tulis cache Masa kemasukan ialah
Menurut pertimbangan menyeluruh, walaupun pangkalan data diubah suai dahulu, data lama akan dibaca untuk tempoh masa tertentu selepas memadamkan cache, yang biasanya diterima.
Selagi cache dipadamkan tepat pada masanya, urutan lain boleh membaca nilai terkini.
Jika mesej tidak digunakan berulang kali dalam mq , ia akan diserahkan kepada pengguna lain untuk dimakan (Padam cache)
Atas ialah kandungan terperinci Apakah maksud pemadaman berganda redis cache tertunda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!