緩存一致性問題
當數(shù)據(jù)時效性要求很高時,需要保證緩存中的數(shù)據(jù)與數(shù)據(jù)庫中的保持一致,而且需要保證緩存節(jié)點和副本中的數(shù)據(jù)也保持一致,不能出現(xiàn)差異現(xiàn)象。這就比較依賴緩存的過期和更新策略。一般會在數(shù)據(jù)發(fā)生更改的時,主動更新緩存中的數(shù)據(jù)或者移除對應的緩存。
緩存并發(fā)問題
緩存過期后將嘗試從后端數(shù)據(jù)庫獲取數(shù)據(jù),這是一個看似合理的流程。但是,在高并發(fā)場景下,有可能多個請求并發(fā)的去從數(shù)據(jù)庫獲取數(shù)據(jù),對后端數(shù)據(jù)庫造成極大的沖擊,甚至導致 “雪崩”現(xiàn)象。此外,當某個緩存key在被更新時,同時也可能被大量請求在獲取,這也會導致一致性的問題。那如何避免類似問題呢?我們會想到類似“鎖”的機制,在緩存更新或者過期的情況下,先嘗試獲取到鎖,當更新或者從數(shù)據(jù)庫獲取完成后再釋放鎖,其他的請求只需要犧牲一定的等待時間,即可直接從緩存中繼續(xù)獲取數(shù)據(jù)。
緩存穿透問題
緩存穿透在有些地方也稱為“擊穿”。很多朋友對緩存穿透的理解是:由于緩存故障或者緩存過期導致大量請求穿透到后端數(shù)據(jù)庫服務器,從而對數(shù)據(jù)庫造成巨大沖擊。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26