中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

先進行緩存操作還是數據庫操作

發布時間:2021-10-18 16:08:03 來源:億速云 閱讀:110 作者:iii 欄目:編程語言

本篇內容介紹了“先進行緩存操作還是數據庫操作”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

先更數據庫,再刪除緩存

問題

緩存刪除后,尚未更新數據庫,并發讀請求,從數據庫讀到了舊值,并且更新到緩存導致后續請求都是舊值。

時間
從上
   到下,
越來
越晚

更新操作

 

刪除redis

讀取操作

 

緩存沒有數據

 

從數據庫讀到舊值

 

回寫redis

更新mysql

返回

返回

 

解決方式

經典的延遲雙刪。就是:先更新數據線,再刪緩存,之后延遲一段時間再刪緩存。

時間
從上
   到下,
越來
越晚

更新操作

 

刪除redis

讀取操作

 

緩存沒有數據

 

從數據庫讀到舊值

 

回寫redis

更新mysql

返回

延遲一段時間

 

 

 

刪除redis

 

 

讀取操作

 

緩存沒有數據

 

從數據庫讀到新值

 

回寫redis

 

返回

延遲一段時間,挺重要不能拍腦袋,需要考慮2個因素

考慮查詢接口響應時間

時間
從上
   到下,
越來
越晚

更新操作

 

刪除redis

讀取操作

 

緩存沒有數據

 

從數據庫讀到舊值

更新mysql

 

延遲一段時間,
小于從數據讀取數據的時間,
延遲策略失效

 

刪除redis

 

 

回寫redis

 

返回

考慮mysql主從同步事件

自建mysql集群,配置不當,會出現mysql主從同步延遲大的情況。

時間
從上
   到下,
越來
越晚

更新操作

 

刪除redis

讀取操作

 

緩存沒有數據

 

從數據庫讀到舊值

 

回寫redis

更新mysql主庫

返回

延遲一段時間,
小于mysql主從同步時間
延遲策略失效

 

 

 

刪除redis

讀取操作

 

緩存沒有數據

 

從庫讀到舊值

mysql主從同步完成

回寫redis

 

返回

延遲時間必須大于查詢接口的響應時間。

并且要大于mysql主從同步的時間,防止主從同步延遲造成,讀到舊值的情況

                                                                                                     --- 溫安適 20210225

先刪緩存,再更新數據庫

注意:建議查詢接口要從主庫進行讀取

時間
從上
   到下,
越來
越晚

更新操作

 

更新mysql主庫

讀取操作

 

緩存有數據,讀到舊值

刪除redis

返回

 

 

 

讀取操作

 

緩存沒有數據

 

主庫讀到新值

 

回寫redis

 

返回

存在的問題:

等待緩存刪除完成,期間數據庫會有不一致數據短暫存在,但是一般可以不處理。

總結:

策略

潛在問題

解決方式

注意事項

先刪緩存,
再更數據庫

并發條件下
數據庫更新還沒有完成
有并發讀請求,從數據庫讀到了舊值

延遲雙刪

延遲時間必須
大于查詢接口的響應時間。
并且大于mysql主從同步的時間

先更數據庫,
再刪緩存

并發條件下
緩存沒有刪除完成,并發讀
從緩存讀到了舊值

不處理,
最終會一致

查詢接口建議讀主庫,存在不一致,
但是一般不需處理

“先進行緩存操作還是數據庫操作”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石林| 垦利县| 娱乐| 旬阳县| 同心县| 基隆市| 麦盖提县| 云龙县| 喀什市| 鄂州市| 包头市| 高陵县| 南靖县| 乌鲁木齐县| 南丰县| 中宁县| 法库县| 徐闻县| 达日县| 吉林市| 磐安县| 石首市| 郧西县| 宁陵县| 奉化市| 澜沧| 柞水县| 油尖旺区| 商洛市| 永兴县| 广南县| 涞源县| 宁德市| 台江县| 罗源县| 西畴县| 郸城县| 乌兰察布市| 南乐县| 石棉县| 淮南市|