快取更新 同步

2021-09-16 12:11:07 字數 731 閱讀 3954

這裡總結的快取同步方案適合像redis這種集中式快取,也適合像本地快取這種分布式快取。這裡按照快取的更新及時性分為三類

適合與分布的伺服器,每隔一段時間更新記憶體資料或靠自定過期更新資料。

這種方式實現非常簡單,適用於少量快取資料,但在大批量的快取資料的場景下不適用,需要考慮下面問題:

1. 快取物件太多,需要定時過期或定期更新的物件太多

2. 由於上面情況,可能出現載入快取資料時對源資料的請求出現同時湧入的情況

一種解決辦法就是把每個快取物件的失效時間設成隨機,達到快取分散載入的目的。對於定時更新的方式也時類似解決辦法,但此種解決辦法還是受限於快取物件的個數限制,只能達到暫時緩解這種問題的爆發。

適合與分布式服務,一旦資料庫的資料發生變化,通知每個分布的服務更新記憶體資料,通知方式基於mq,資料傳送改變需要同步到快取時就傳送乙個msg到mq,每個分布的服務通過監控mq來更新快取。

對於這種方式,需要考慮快取物件更新失敗的情況,主要考慮點是msg一定可以被處理並更新快取成功

更新資料庫的資料時,將更新分布服務的記憶體資料操作納入同乙個事物,等待所有事物完了,統一提交。適合與redis這種集中式的快取,基本的實現方式如下

mysql transaction begin

sql update...

redis update ...

...commit [exception rollback]

Redis更新快取同步資料庫的理解

問題 當資料庫有資料更新時,怎樣保證redis快取中的資料與資料庫資料一致?redis更新的正確方法 原文 快取更新的套路 看到好些人在寫更新快取資料 時,先刪除快取,然後再更新資料庫,而後續的操作會把資料再裝載的快取中。然而,這個是邏輯是錯誤的。試想,兩個併發操作,乙個是更新操作,另乙個是查詢操作...

更新DNS快取

症狀 公司的某 用ie打不開,提示網域名稱無法解析。但是上其它 正常,並且早上還是可以登入的。修改dns嘗試不成功。莫非是網域名稱本身的問題?問同事,同事那可以正常訪問。奇怪。使用firefox和opera嘗試,均能正常訪問。就是ie訪問網域名稱無法解析。還從沒遇到過這種情況。解決 使用ipconf...

8 快取預熱 快取更新 快取降級

快取預熱就是系統上線後,將相關的快取資料直接載入到快取系統。這樣避免,使用者請求的時候,再去載入相關的資料。解決方法 快取淘汰的策略有兩種 兩者各有優劣,第一種的缺點是維護大量快取的key是比較麻煩的,第二種的缺點就是每次使用者請求過來都要判斷快取失效。當訪問量劇增 服務出現問題 如響應時間慢或不響...