Rumah > Soal Jawab > teks badan
数据库是 MySQL,Redis 主要用来读缓存,现需要检测数据和缓存之间的一致性,确保从缓存读取的数据是最新的。该怎么确保这一点呢?
怪我咯2017-04-22 08:58:29
1. Apabila membuat contoh model, seperti semasa membuat pertanyaan, anda boleh menyimpan jumlah bilangan rekod dalam jadual, masa pengubahsuaian terakhir dan maklumat lain pada kaedah model
2. Apabila menanyakan data, gabungkan syarat pertanyaan dan maklumat jadual untuk mengira kunci cache dan tuliskannya ke dalam cache
3. Apabila mendapatkan cache, gabungkan syarat pertanyaan dan maklumat jadual untuk mengira kunci cache dan pertanyaan cache Jika data jadual diubah suai dan cache tidak boleh dipukul, keputusan terkini akan diperoleh dan disimpan sebagai kunci baharu
Dalam pembangunan sebenar, rangka kerja MVC digunakan Semasa operasi CUD model, semua kunci cache yang dikaitkan dengan model akan dipadamkan secara automatik untuk memastikan konsistensi data.
Ini memerlukan piawaian yang agak tinggi untuk penggunaan rangka kerja, dan cache perlu didaftarkan mengikut spesifikasi caching model.
Aplikasi biasa pada masa ini ialah cara mengemas kini data cache senarai selepas CRUD.
怪我咯2017-04-22 08:58:29
Semak cache, jika tidak, buang data dalam pangkalan data ke cache.
Sekiranya terdapat kemas kini data, jika konsistensi data tidak begitu tinggi, maka berikan sahaja data dalam cache ttl jika konsistensi data sangat tinggi, kosongkan cache semasa mengemas kini data.
伊谢尔伦2017-04-22 08:58:29
Anda boleh menambah medan pada setiap kunci untuk mewakili maklumat versi. Kemas kini nombor versi data yang dikemas kini Gunakan kekunci+nombor versi apabila membuat pertanyaan ulang.