Redis 缓存和数据库之间的数据校验该怎么做?
怪我咯
怪我咯 2017-04-22 08:56:29
0
3
716

数据库是 MySQL,Redis 主要用来读缓存,现需要检测数据和缓存之间的一致性,确保从缓存读取的数据是最新的。该怎么确保这一点呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
刘奇

1,實例化模型的時候,如查詢的時候,可以將表的記錄總數,最後修改時間等資訊保存到模型的一個方法中
2,查詢資料時,將查詢條件與表格的信息,合併計算一個快取key,並寫入快取
3,獲取快取時,將查詢條件與表的信息,合併計算一個緩存key,查詢緩存,如果表的數據有修改,則緩存無法命中,則獲取最新的結果並保存為新的key

在實際開發中,用的是MVC框架,在模型的CUD操作中,會自動刪除與該模型關聯的所有快取key,從而確保資料的一致性。
這對框架的使用規範要求比較高,需要依模型快取規範去註冊快取。

目前比較典型的應用,就是CRUD以後,列表的快取資料如何更新。

刘奇

查緩存,沒有就將資料庫裡的資料dump到快取。
有資料更新的話,如果對資料一致性不是很高的,那麼給快取裡的資料一個ttl就行了;如果對資料一致性要求很高的話,更新資料的時候把快取清一下。

伊谢尔伦

可以為每個key增加一個字段,表示版本資訊。更新資料的更新版本號,查詢redis的時候用key+版本號。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板