Redis Mysql 讀寫一致性問題

2021-08-21 19:56:59 字數 342 閱讀 7643

如果不能正確的處理 redis 和 mysql 的讀寫邏輯很容易出現髒讀,從而導致造成一些不必要的風險,如在插入資料時,先寫redis在寫db,如果失敗會回滾,此時redis的資料是無效的資料從而造成髒讀

在讀取資料時,我們遵守先從redis中讀取資料,如果redis不存在,再到db中去讀資料。

在向資料庫中插入資料時,我們只對資料庫進行操作,不對redis進行資料cache。這樣就避免了髒資料的cache,而這條記錄當進行讀操作時會cache進來。

在更新操作上面,先對db進行更新操作,然後設定改記錄的redis快取為無效。

遵循以上的三點能夠很好的保證 redis 和 mysql 的資料讀寫一致性問題。

強一致性 弱一致性 最終一致性

這種方式在es等分布式系統中也有體現,可以設定主shard提交即返回成功,或者需要replica shard提交成功再返回。提到分布式架構就一定繞不開 一致性 問題,而 一致性 其實又包含了資料一致性和事務一致性兩種情況,本文主要討論資料一致性 事務一致性指acid 複製是導致出現資料一致性問題的唯...

《Redis Mysql 雙寫一致性問題》

一 序 最近在對資料做快取時候,會涉及到如何保證 資料庫 redis 一致性問題。剛好今天來總結下 一致性問題 產生的問題,和可能存在的解決方案。二 更新策略 先更新資料庫,後更新快取 產生的問題 由上面流程圖可知道,請求a更新快取應該比請求b更新快取早才對,但是因為網路等原因,b卻比a更早更新了快...

一致性雜湊

直接貼出一篇介紹的很清楚的博文。關鍵字一致性雜湊 平衡性,單調性,分散性,負載 其實說白了,就是解決把請求分散到不同的機器上運算,怎麼做分散的平均,機器少一台多一台,或者壞掉一台,成很好的自適應和拓展。最簡單的實現分布式演算法,取模嘛,但是它就上述的一些問題,所以不算好的雜湊函式。一致性雜湊演算法,...