1.擊穿
image.png
- 添加分布式鎖,當發(fā)現(xiàn)緩存為空時只允許一個請求到DB進行數(shù)據(jù)加載
2.穿透
image.png
- 布隆過濾器
3.雪崩
在高并發(fā)下吏祸,大量緩存key在同一時間失效,大量請求直接落在數(shù)據(jù)庫上筒狠,導致數(shù)據(jù)庫宕機
解決方案:
失效時間隨機,避免大量數(shù)據(jù)同一時間失效
數(shù)據(jù)用不過期
定期調(diào)度刷新數(shù)據(jù),數(shù)據(jù)存活時間無限續(xù)命
數(shù)據(jù)分散在不同機器分片上,壓力分攤
4.分布式鎖
方案一:SETNX + EXPIRE
方案二:SETNX + value值是(系統(tǒng)時間+過期時間)
方案三:使用Lua腳本(包含SETNX + EXPIRE兩條指令)
方案四:SET的擴展命令(SET EX PX NX)
方案五:SET EX PX NX + 校驗唯一隨機值,再釋放鎖
方案六: 開源框架~Redisson
方案七:多機實現(xiàn)的分布式鎖Redlock
https://www.cnblogs.com/wangyingshuo/p/14510524.html
需要考慮 :鎖重入,死鎖,公平鎖?非公平鎖?
zk分布式鎖與redis分布式鎖的區(qū)別?
https://blog.csdn.net/xiaoxiaole0313/article/details/107011095/