當前時訊:Redis高可用高性能緩存的應用系列03 - 緩存過期淘汰策略LRU、LFU
概述
Redis高可用高性能緩存的應用系列的第3篇,主要介紹Redis緩存過期淘汰策略的知識點。
Redis過期鍵刪除策略
Redis設置key時,都會設置一個過期時間,那么當過期時間到了都是怎么處理的?
Redis同時使用了惰性過期和定期過期兩種方式的緩存淘汰策略。
(資料圖)
定期過期的執(zhí)行過程
Redis默認每秒進行10次過期掃描:
1.從過期字典中隨機選擇20個key
2.刪除這20個key中已過期的
3.如果超過25%的key過期,則重復第一步
同時,為了保證業(yè)務不受影響,Redis還設置了掃描的時間上限,默認不會超過25ms
內(nèi)存淘汰策略
1.假如內(nèi)存不足時,Redis會根據(jù)設置的淘汰策略,刪除一些不常用的數(shù)據(jù),保證Redis的正常使用,所有的前提都是加入鍵的時候如果超過Redis內(nèi)存設定的限制后,Redis采用的服務。
1.noeviction: 不會在寫入,寫入會報錯。
2.allkeys-lru:首先通過LRU算法驅(qū)逐最久沒有使用的鍵
3.volatile-lru:首先從設置了過期時間的鍵集合中驅(qū)逐沒有最久使用的鍵
4.allkeys-random:從所有過期字典中的key隨機刪除
5.volatile-random:從過期鍵的集合中隨機驅(qū)逐
6.volatile-ttl:從配置了過期時間的鍵中,驅(qū)逐馬上就要過期的鍵
7.volatile-lfu:從配置了過期時間的鍵中驅(qū)逐使用頻率最少得鍵
8.allkeys-lfu:從所有鍵中使用頻率最少的鍵
LRU
根據(jù)最近被使用的時間,距離當前最遠的數(shù)據(jù)優(yōu)化被淘汰,當有新增key 或者是被訪問時,元素會被追加在隊尾,需要淘汰時從頭部開始淘汰,這個是LRU的思想。
在Redis redisObject 中,維護了一個24位的時鐘(有點類似于Cpu的頻率),可以簡單理解為Cpu對內(nèi)存使用的時間戳,每個Key對應的也維護了同樣24位的時間戳。
比如現(xiàn)在要進行LRU,首先拿到當前系統(tǒng)的時間鐘,和Redis redisObject 內(nèi)存的LRU時間鐘對差值計算,差最大的進行淘汰,這里需要注意的是,全局時鐘只有24位,按秒計算的話,最多可以存儲194天,所以可能出現(xiàn)key時鐘大于全局時鐘的情況,但是Redis的LRU不會對全局的時鐘進行比對,他會從設置了過期時間的key中進行比對。
struct redisObject { unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or * LFU data (least significant 8 bits frequency * and most significant 16 bits access time). */};
LFU
LRU只考慮了使用的時間,但是沒有考慮Key使用的次數(shù),Redis4.0 以后,新增了LFU的淘汰策略,根據(jù)使用時間和次數(shù)最為淘汰的權重。
LFU把之前LRU的24bit拆分成兩部分,16bit的時間鐘和8it的訪問頻率,8bit比較小,在源碼的evict文件中給出了數(shù)據(jù)。
uint8_t LFULogIncr(uint8_t counter) { if (counter == 255) return 255; double r = (double)rand()/RAND_MAX; double baseval = counter - LFU_INIT_VAL; if (baseval < 0) baseval = 0; double p = 1.0/(baseval*server.lfu_log_factor+1); if (r < p) counter++; return counter;}
標簽:
- 當前時訊:Redis高可用高性能緩存的
- EMC 知識總結 天天快訊
- 【ES三周年】一文弄懂css權重 天天
- apache虛擬主機配置
- Elk、尺帝、小呂布、Peyz!誰會是MS
- LSD賽道三強爭霸:上海升級我該選擇
- 為什么開放二胎和三胎后,出生率反
- 天天熱文:杭州成全國“最能花錢”
- 天天熱資訊!養(yǎng)老金調(diào)整會在4月公布
- 焦點速看:共14個!2023年度法治湖
- 如何查二級運動員詢信息
- 如何查詢招生錄取情況計劃結果
- 如何到桐城師范學校???022招生名
- 如何查詢中考是否報名怎樣情況網(wǎng)上
- 天天短訊!鄭州市存量房“帶押過戶
- 全球微速訊:聯(lián)合帕梅拉打造獨家課
- 文旅部擬規(guī)定:除這些時間,不得向
- 公司治理失衡!國都證券業(yè)務活動被
- 達美航空預計二季度調(diào)整后每股收益2
- 瞿秋白散文名篇
- 關嶺縣領導到縣農(nóng)業(yè)農(nóng)村局調(diào)研 世
- 世界熱訊:一個人最大的清醒,是懂得
- 世界熱推薦:有蘇軾那樣的哥哥,蘇
- “網(wǎng)紅圖書館”走進徐匯萬科中心
- 指生萬物、向美而生 長三角市民手
- 每日聚焦:2023年3月進出口數(shù)據(jù)點評
- 貴州劍河:美麗庭院 扮靚鄉(xiāng)村“顏
- 小商品城回應股票異常波動 不存在
- 上海臨港2022年歸母凈利潤10.09億元
- 世界熱消息:新地University Hill