redis - 內(nèi)存回收策略

1,簡介

redis內(nèi)存回收主要體現(xiàn)在兩個方面
1)過期key的清理
2)設(shè)置maxmemory,內(nèi)存達到限制時觸發(fā)數(shù)據(jù)淘汰

2,過期key的清理

redisDb數(shù)據(jù)結(jié)構(gòu)
expires字典:保存了所有鍵的過期時間,值使用unix時間戳

image.png

1)惰性刪除
讀寫一個過期key時,會觸發(fā)惰性刪除。
2)定時刪除
redis維護定時任務(wù),默認1秒10次。隨機抽取部分key,如失效,則刪除
3)主從模式的影響
主節(jié)點才會執(zhí)行兩種key清理策略,發(fā)送DEL命令到從節(jié)點如果期間對從節(jié)點讀操作,則仍會正常讀取。

3,maxmemory與數(shù)據(jù)淘汰

redisObject數(shù)據(jù)結(jié)構(gòu)
lru:記錄對象最后一次被命令程序訪問的時間。使用object idletime $key 可以查看key的空轉(zhuǎn)時間
參與數(shù)據(jù)淘汰:當(dāng)使用內(nèi)存操作maxmemory時,會觸發(fā)數(shù)據(jù)淘汰策略。使用volatile-lru、allkeys—lru時,redis會淘汰空轉(zhuǎn)時間最長的對象
maxmemory_samples:隨機取固定數(shù)目的key基于server.maxmemory_samples,按照訪問時間排序,淘汰的最不經(jīng)常使用的。

image.png

1)maxmemory、maxmemory-policy配置
redis.conf:配置maxmemory
config命令:CONFIG SET maxmemory 100MB
image.png

2)數(shù)據(jù)淘汰策略
volatile-lru:只對設(shè)置了過期時間的內(nèi)存數(shù)據(jù)集進行LRU
allkeys-lru:對所有內(nèi)存數(shù)據(jù)集進行LRU
noeviction:永不過期
volatile-ttl:刪除即將過期的數(shù)據(jù)
volatile-random:隨機刪除即將過期的數(shù)據(jù)
allkeys-random:隨機刪除數(shù)據(jù)

4,Redis LFU實現(xiàn)

Redis4.0之后出現(xiàn)的數(shù)據(jù)淘汰策略:使用LRU并不精確,不能準(zhǔn)確的識別熱點key
1)LFU按最近的訪問頻率進行淘汰,將lru字段分成16bit + 8bit。
高16bit:最近一次計數(shù)器降低的時間ldt (last decrement time)
低8bit:用來存儲訪問頻次,logc (logistic counter)
2)數(shù)據(jù)淘汰策略
volatile-lfu:對有過期時間的key采用LFU淘汰算法
allkeys-lfu:對全部key采用LFU淘汰算法
3)參數(shù)配置
lfu-log-factor:調(diào)整logc的增長速度,lfu-log-factor越大,增長越慢
lfu-decay-time:以分鐘為單位的數(shù)值,調(diào)整logc的減少速度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • [TOC] 1. Redis 被當(dāng)做緩存使用 當(dāng)Redis被當(dāng)做緩存來使用,當(dāng)你新增數(shù)據(jù)時,讓它自動地回收舊數(shù)據(jù)是...
    為愛瘋狂_3850閱讀 562評論 0 0
  • #設(shè)置同時連接的最大客戶端數(shù)。默認#此限制設(shè)置為10000個客戶端,但是如果Redis服務(wù)器不是#能夠配置進程文件...
    Odven閱讀 154評論 0 3
  • Redis會因為內(nèi)存不足而產(chǎn)生錯誤,也會因為回收過久而導(dǎo)致系統(tǒng)長期的停頓,因此了解掌握Redis的回收策略十分重要...
    禿頭哥編程閱讀 2,483評論 1 1
  • 夜鶯2517閱讀 128,218評論 1 9
  • 版本:ios 1.2.1 亮點: 1.app角標(biāo)可以實時更新天氣溫度或選擇空氣質(zhì)量,建議處女座就不要選了,不然老想...
    我就是沉沉閱讀 7,515評論 1 6

友情鏈接更多精彩內(nèi)容