實時同步
對強制性要求比較高的,應採用實時同步方案,先查詢快取若查詢不到再去db中查詢,然後儲存到快取;
更新快取時,先更新資料庫,再將快取的設定過期(建議不要去更新快取內容,直接設定快取過期)。
1. @cacheable:查詢時使用,注意long型別需要轉化為string型別,否則會拋棄異常
2. @cacheput:更新時使用,一定回車從db中查詢資料
3. @cacheevict:刪除時使用
4. @caching:組合用法
非同步佇列(流量削峰)
對於併發程度高的,可採用非同步佇列額方式同步:可採用訊息中介軟體處理訊息
使用阿里的同步工具canal 快取與資料庫一致性
此時系統的讀寫流量很小,這個時候所有的讀寫操作都在主庫 此時,從庫的角色只是作為災備。風險分析 從資料一致性的角度來看沒有任何問題,所有讀寫操作都在主庫 隨著業務的前進和流量的激增,會出現大表和資料庫寫入效能下降的問題。我們可以通過分庫的方式,提公升資料庫單機的qps壓下來 通過分表的方式,降低單錶...
Redis快取與資料庫資料一致性
寫流程 先刪除快取,刪除之後再更新db,再非同步將資料刷回快取。如果先更新資料庫再更新快取,更新資料庫時,程式訪問快取時還是舊的資料。讀流程 先讀快取,如果快取沒讀到,則去讀db,之後再非同步將資料刷回快取。缺點 容災不足 第一步del快取失敗 如果繼續執行,那麼從 更新完db 到非同步 重新整理快...
Redis快取一致性
用過redis的應該都清楚,redis作為記憶體快取,只是他查詢快的一大優勢,關係型資料庫只能用作儲存重要資料,或者備份快取的資料,這個時候,不可避免,我們會遇到快取中的資料與關係型資料庫中的資料不一致的情況。出現不一致的現象很常見,如果你是單個使用者肯定不會出現這種情況,如果在多執行緒併發的情況下...