天天看點

如何保證redis與資料庫一緻性

問題描述:

這是我們在用redis做緩存是避免不了的一個問題,正常情況下我們是更新完資料庫馬上更新緩存,但是如果某一天,你吃着雪糕磕着瓜子,緩存服務崩了,你啷個辦,這時候資料庫已經更新完了,别想着讓redis復原,redis沒有復原機制,哦豁看來隻有删庫跑路;

方案:

除了删庫跑路,我們可以采用一些更理性的方法,比如增加重試機制,删除失敗就重試個四五次,如果四五次重試也失敗,那我們分情況:

如果對資料實時性要求比較高,我們可以搞一個報警系統,重試次數用完後觸發報警,報警怎麼實作??方案很多,比如給管理者發送郵件,告知項目管理者你服務崩了,準備跑路吧(如果想讓使用者體驗好一點,還可以幫管理者寫好離職報告,定好機票),當然,在發送郵件之前,我們可以先給客戶傳回個通知,比如系統異常,網站資料可能更新不及時,建議稍後再進行操作,總之别讓使用者懵逼;這裡的郵件通知隻是一個方法,還有很多其他通知方式;

如果系統對資料實時性要求不高,可以把這個更新緩存的操作寫入rabbitMQ,然後設定成手動确認,等緩存服務起來後再進行更新也是ok的;

方案千千萬,适合自己的才是最好的!

如有雷同,請舉報我,ok我話講完