日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis的缓存雪崩、缓存击穿、缓存穿透与缓存预热、缓存降级

發布時間:2024/9/30 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis的缓存雪崩、缓存击穿、缓存穿透与缓存预热、缓存降级 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、緩存雪崩:

1、什么是緩存雪崩:

如果緩在某一個時刻出現大規模的key失效,那么就會導致大量的請求打在了數據庫上面,導致數據庫壓力巨大,如果在高并發的情況下,可能瞬間就會導致數據庫宕機。這時候如果運維馬上又重啟數據庫,馬上又會有新的流量把數據庫打死。這就是緩存雪崩。

2、問題分析:

造成緩存雪崩的關鍵在于同一時間的大規模的key失效,為什么會出現這個問題,主要有兩種可能:第一種是Redis宕機,第二種可能就是采用了相同的過期時間。搞清楚原因之后,那么有什么解決方案呢?

3、解決方案:

(1)事前:

① 均勻過期:設置不同的過期時間,讓緩存失效的時間盡量均勻,避免相同的過期時間導致緩存雪崩,造成大量數據庫的訪問。

② 分級緩存:第一級緩存失效的基礎上,訪問二級緩存,每一級緩存的失效時間都不同。

③ 熱點數據緩存永遠不過期。

永不過期實際包含兩層意思:

  • 物理不過期,針對熱點key不設置過期時間

  • 邏輯過期,把過期時間存在key對應的value里,如果發現要過期了,通過一個后臺的異步線程進行緩存的構建

④ 保證Redis緩存的高可用,防止Redis宕機導致緩存雪崩的問題。可以使用 主從+ 哨兵,Redis集群來避免 Redis 全盤崩潰的情況。

(2)事中:

① 互斥鎖:在緩存失效后,通過互斥鎖或者隊列來控制讀數據寫緩存的線程數量,比如某個key只允許一個線程查詢數據和寫緩存,其他線程等待。這種方式會阻塞其他的線程,此時系統的吞吐量會下降

② 使用熔斷機制,限流降級。當流量達到一定的閾值,直接返回“系統擁擠”之類的提示,防止過多的請求打在數據庫上將數據庫擊垮,至少能保證一部分用戶是可以正常使用,其他用戶多刷新幾次也能得到結果。

(3)事后:

① 開啟Redis持久化機制,盡快恢復緩存數據,一旦重啟,就能從磁盤上自動加載數據恢復內存中的數據。

?

二、緩存擊穿:

1、什么是緩存擊穿:

緩存擊穿跟緩存雪崩有點類似,緩存雪崩是大規模的key失效,而緩存擊穿是某個熱點的key失效,大并發集中對其進行請求,就會造成大量請求讀緩存沒讀到數據,從而導致高并發訪問數據庫,引起數據庫壓力劇增。這種現象就叫做緩存擊穿。

2、問題分析:

關鍵在于某個熱點的key失效了,導致大并發集中打在數據庫上。所以要從兩個方面解決,第一是否可以考慮熱點key不設置過期時間,第二是否可以考慮降低打在數據庫上的請求數量。

3、解決方案:

(1)在緩存失效后,通過互斥鎖或者隊列來控制讀數據寫緩存的線程數量,比如某個key只允許一個線程查詢數據和寫緩存,其他線程等待。這種方式會阻塞其他的線程,此時系統的吞吐量會下降

(2)熱點數據緩存永遠不過期。

永不過期實際包含兩層意思:

  • 物理不過期,針對熱點key不設置過期時間

  • 邏輯過期,把過期時間存在key對應的value里,如果發現要過期了,通過一個后臺的異步線程進行緩存的構建

?

三、緩存穿透:

1、什么是緩存穿透:

緩存穿透是指用戶請求的數據在緩存中不存在即沒有命中,同時在數據庫中也不存在,導致用戶每次請求該數據都要去數據庫中查詢一遍。如果有惡意攻擊者不斷請求系統中不存在的數據,會導致短時間大量請求落在數據庫上,造成數據庫壓力過大,甚至導致數據庫承受不住而宕機崩潰。

2、問題分析:

緩存穿透的關鍵在于在Redis中查不到key值,它和緩存擊穿的根本區別在于傳進來的key在Redis中是不存在的。假如有黑客傳進大量的不存在的key,那么大量的請求打在數據庫上是很致命的問題,所以在日常開發中要對參數做好校驗,一些非法的參數,不可能存在的key就直接返回錯誤提示。

3、解決方法:

(1)將無效的key存放進Redis中:

當出現Redis查不到數據,數據庫也查不到數據的情況,我們就把這個key保存到Redis中,設置value="null",并設置其過期時間極短,后面再出現查詢這個key的請求的時候,直接返回null,就不需要再查詢數據庫了。但這種處理方式是有問題的,假如傳進來的這個不存在的Key值每次都是隨機的,那存進Redis也沒有意義。

(2)使用布隆過濾器:

如果布隆過濾器判定某個 key 不存在布隆過濾器中,那么就一定不存在,如果判定某個 key 存在,那么很大可能是存在(存在一定的誤判率)。于是我們可以在緩存之前再加一個布隆過濾器,將數據庫中的所有key都存儲在布隆過濾器中,在查詢Redis前先去布隆過濾器查詢 key 是否存在,如果不存在就直接返回,不讓其訪問數據庫,從而避免了對底層存儲系統的查詢壓力。

如何選擇:針對一些惡意攻擊,攻擊帶過來的大量key是隨機,那么我們采用第一種方案就會緩存大量不存在key的數據。那么這種方案就不合適了,我們可以先對使用布隆過濾器方案進行過濾掉這些key。所以,針對這種key異常多、請求重復率比較低的數據,優先使用第二種方案直接過濾掉。而對于空數據的key有限的,重復率比較高的,則可優先采用第一種方式進行緩存。

?

四、緩存預熱:

1、什么是緩存預熱:

緩存預熱是指系統上線后,提前將相關的緩存數據加載到緩存系統。避免在用戶請求的時候,先查詢數據庫,然后再將數據緩存的問題,用戶直接查詢事先被預熱的緩存數據。

如果不進行預熱,那么Redis初始狀態數據為空,系統上線初期,對于高并發的流量,都會訪問到數據庫中, 對數據庫造成流量的壓力。

2、緩存預熱解決方案:

(1)數據量不大的時候,工程啟動的時候進行加載緩存動作;

(2)數據量大的時候,設置一個定時任務腳本,進行緩存的刷新;

(3)數據量太大的時候,優先保證熱點數據進行提前加載到緩存。

?

五、緩存降級:

緩存降級是指緩存失效或緩存服務器掛掉的情況下,不去訪問數據庫,直接返回默認數據或訪問服務的內存數據。降級一般是有損的操作,所以盡量減少降級對于業務的影響程度。

在項目實戰中通常會將部分熱點數據緩存到服務的內存中,這樣一旦緩存出現異常,可以直接使用服務的內存數據,從而避免數據庫遭受巨大壓力。

?

總結

以上是生活随笔為你收集整理的Redis的缓存雪崩、缓存击穿、缓存穿透与缓存预热、缓存降级的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产青青草在线 | 欧美精品网 | 麻豆一级片 | 欧美在线一二 | 国产一区精品视频 | 天天操天天射天天爽 | 欧美精品一区二区三区四区五区 | 中文字幕一区二区三区免费 | 九月婷婷色| 欧美亚洲另类图片 | 99视频这里有精品 | 国产美女一区二区 | 国产精品毛片一区视频播 | 我不卡一区二区 | 自拍偷拍20p | 天天射天天干天天色 | 美女黄视频网站 | 播放男人添女人下边视频 | 国产区精品在线观看 | 中文字幕久久精品 | 影音先锋蜜桃 | 国产成人福利在线 | 色羞羞| 黑人av| 四虎影视免费永久观看在线 | 欧美性生交xxxxx久久久 | 国产精品亚洲五月天丁香 | 久久综合五月婷婷 | 伊人春色在线 | 高清视频免费在线观看 | 天堂8中文在线 | 国产一级理论片 | 在线午夜 | 尹人成人 | 麻豆精品国产传媒av | 一区二区福利 | 国产精品丝袜一区 | 欧美a级黄色片 | 91欧美国产 | 亚洲AV无码AV吞精久久中文版 | 国产三级做爰高清在线 | 无码人妻久久一区二区三区蜜桃 | 亚洲精品欧美激情 | 国产精品成人自拍 | 精品人妻一区二区三区日产乱码 | 国产又粗又深又猛又爽又在线观看 | 无码少妇一级AV片在线观看 | av福利社| 国产精品视频麻豆 | 欧美 日韩 国产 成人 在线 | 亚洲欧美中文日韩在线 | 在线观看黄网 | 日本道在线观看 | 神马久久久久久久久久久 | 午夜激情视频网 | jizz中国女人高潮 | 国产成人无码a区在线观看视频 | 国产极品一区二区 | 久久免费国产视频 | 日韩欧美成人一区二区 | 国产激情久久久久 | 黄网站在线观看视频 | 综合色爱 | 天天操天天操天天操 | 东京热一区二区三区四区 | 国产一区二区精彩视频 | 麻豆视频在线观看免费 | 91久久精品一区二区三区 | 国产成人资源 | 91九色蝌蚪91por成人 | 五月亚洲| 日日骚一区二区 | hitomi一区二区三区精品 | 国产真实老熟女无套内射 | 天天干天天色 | 亚洲免费成人网 | 露脸啪啪清纯大学生美女 | kk视频在线观看 | 黄色xxxx| 噜噜av | 严厉高冷老师动漫播放 | av最新版天堂资源在线 | 亚洲精品一区二区三区蜜桃 | 精品一区二区日韩 | 日韩一级免费毛片 | 91网站免费观看 | av在线超碰 | 少女与动物高清版在线观看 | 日本一区三区 | 熟妇人妻中文字幕 | 日韩播放| 青青超碰 | 国产亚洲精品熟女国产成人 | 一区二区三区免费高清视频 | 日本亲子乱子伦xxxx50路 | 国产成人无码精品 | 西西午夜影院 | 女女互慰吃奶互揉调教捆绑 | 在线黄色观看 |