1.redis緩存過期
redis 數(shù)據(jù)少可以設(shè)置超時(shí)時(shí)間
redis 數(shù)據(jù)多單單設(shè)置超時(shí)時(shí)間 還不夠 需要進(jìn)行全盤掃描 時(shí)間太久 所以需要另外機(jī)制 redis 淘汰策略
2.內(nèi)存淘汰策略
-
noeviction:返回錯(cuò)誤,不會(huì)刪除任何鍵值
-
allkeys-lru:使用LRU算法刪除最近最少使用的鍵值
-
volatile-lru:使用LRU算法從設(shè)置了過期時(shí)間的鍵集合中刪除最近最少使用的鍵值
-
allkeys-random:從所有key隨機(jī)刪除
-
volatile-random:從設(shè)置了過期時(shí)間的鍵的集合中隨機(jī)刪除
-
volatile-ttl:從設(shè)置了過期時(shí)間的鍵中刪除剩余時(shí)間最短的鍵
-
volatile-lfu:從配置了過期時(shí)間的鍵中刪除使用頻率最少的鍵
-
allkeys-lfu:從所有鍵中刪除使用頻率最少的鍵
有了上述兩種 可以解決內(nèi)存占滿的情況
緩存穿透情況
請求一些不存在的數(shù)據(jù) 因?yàn)閞edis 不存在 所以經(jīng)常查詢數(shù)據(jù)庫
解決緩存穿透的情況
用redis的布隆過濾器 :
特點(diǎn)
說不存在一定不存在
對布隆過濾器的理解 可以參考 這個(gè)博客
http://www.rzrgm.cn/xzqpy/p/12007020.html
緩存擊穿 && 緩存雪崩
緩存擊穿:redis這個(gè)數(shù)據(jù)剛好過期 還沒來得及緩存 之后大量請求這個(gè)數(shù)據(jù)
緩存雪崩 :redis這批數(shù)據(jù)剛好同時(shí)過期 還沒來得及緩存 之后大量請求這批數(shù)據(jù)
解決緩存擊穿 && 緩存雪崩
隨機(jī)設(shè)置數(shù)據(jù)超時(shí)時(shí)間 不要用固定值
設(shè)置了熱點(diǎn)數(shù)據(jù)永不過期
浙公網(wǎng)安備 33010602011771號