缓存中常见的概念及解决方案
生活随笔
收集整理的這篇文章主要介紹了
缓存中常见的概念及解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
緩存中常見的概念及解決方案
緩存穿透
1、概念
用戶查詢數據,在數據庫中以及緩存中(redis)都查詢不到,導致每次請求來時,緩存(redis)中查詢一次,數據庫查詢一次,最后返回空,每次請求都會有倆次無用的查詢,緩存命中率低
2、解決方案
1) 對null值設置緩存,每隔一段時間過期
2) 使用布隆過濾器緩存需要的值,直接過濾 掉找不到值得key
緩存雪崩
1、概念
緩存(redis)服務掛掉,緩存在同一時間發生大面積的實效,請求每次查完數據未能將數據緩存倒數據庫中,導致所有的請求都會去查詢數據庫,造成同一時間數據庫的cpu及內存負載過高的問題,甚至宕機。
2、解決方案
1)redis高可用,使用哨兵部署或者集群部署模式,保證緩存服務的高可用
2)為key設置不同的過期時間,讓key的過期時間均衡分布,防止同一時間緩存大面積的實效。
3)使用鎖和隊列,對請求進行異步處理,降低數據庫的壓力。
4)使用緩存降級策略(使用guava或ehcache等本地緩存 或者對服務訪問進行限流、熔斷及降級)
緩存擊穿
1、概念
某個key非常熱點,在不停的坑著大并發,大并發集中對這一個點進行訪問,當這個key失效的瞬間,持續的高并發會擊破緩存,直接請求數據庫,導致數據庫的cpu及內存負載過高,甚至宕機。
2、解決方案
1)設置某些熱點key的過期時間(延長或者永不過期)
2) mutex key互斥鎖
轉載于:https://www.cnblogs.com/jakaBlog/p/10759519.html
總結
以上是生活随笔為你收集整理的缓存中常见的概念及解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017-11-17 为Python添加
- 下一篇: 抢攻5G网络功能虚拟化,英特尔推专用FP