Rumah >pangkalan data >Redis >Apakah maksud pemadaman berganda redis cache tertunda?

Apakah maksud pemadaman berganda redis cache tertunda?

王林
王林ke hadapan
2023-05-26 15:49:513161semak imbas

Mengapa cache dipadamkan dan bukannya dikemas kini?

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.

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.

Gunakan bukti dengan percanggahan

Hanya padam dahulu

Apakah maksud pemadaman berganda redis cache tertunda?

Hanya padam kemudian

Apakah maksud pemadaman berganda redis cache tertunda?

Kesimpulan

Ini membawa kepada kesimpulan bahawa kedua-dua pemadaman depan dan 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.

Apakah maksud pemadaman berganda redis cache tertunda?

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

Apakah maksud pemadaman berganda redis cache tertunda?

Walau bagaimanapun, pemadaman berganda yang tertunda sangat sukar untuk ditentukan, jadi ia tidak disyorkan untuk menangguhkan pemadaman dua kali

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.

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 Apakah maksud pemadaman berganda redis cache tertunda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam