1. 程式人生 > >REDIS (13) 快取的穿透,雪崩和熱點key

REDIS (13) 快取的穿透,雪崩和熱點key

穿透

穿透:頻繁查詢一個不存在的資料,由於快取不命中,每次都要查詢持久層。從而失去快取的意義。

解決辦法:①用一個bitmap和n個hash函式做布隆過濾器過濾沒有在快取的鍵。
   ②持久層查詢不到就快取空結果,有效時間為數分鐘。


雪崩


雪崩:快取大量失效的時候,引發大量查詢資料庫。
解決辦法:①用鎖/分散式鎖或者佇列序列訪問

           ②快取失效時間均勻分佈

熱點key

熱點key:某個key訪問非常頻繁,當key失效的時候有打量執行緒來構建快取,導致負載增加,系統崩潰。

解決辦法:

①使用鎖,單機用synchronized,lock等,分散式用分散式鎖。

②快取過期時間不設定,而是設定在key對應的value裡。如果檢測到存的時間超過過期時間則非同步更新快取。

③在value設定一個比過期時間t0小的過期時間值t1,當t1過期的時候,延長t1並做更新快取操作。