Redis淘汰策略

Redis有8種淘汰策略(常規(guī)的+Redis4.0新增的2種lfu策略)

名詞解釋

lru(less recently used)最近最少使用
ttl(time to live)存活時間
lfu(least frequency use)最少使用頻率

淘汰策略

1、 no-eviction(默認策略):不淘汰策略,超過最大內(nèi)存則返回錯誤信息;
2、 volatile-lru:已經(jīng)設(shè)置過期時間的KV集中,優(yōu)先淘汰最近最少使用的;
3、 volatile-ttl:已經(jīng)設(shè)置過期時間的KV集中,優(yōu)先淘汰剩余存活時間短的;
4、 volatile-random:已經(jīng)設(shè)置過期時間的KV集中,隨機選擇數(shù)據(jù)淘汰;
5、 allkeys-lru:所有KV集中,優(yōu)先淘汰最近最少使用的;
6、 allkeys-random:所有KV集中,隨機選擇需要淘汰的數(shù)據(jù);
新增的兩種lfu策略:統(tǒng)計訪問頻率,將訪問頻率最少的淘汰掉;
7、 volatile-lfu
8、 allkeys-lfu

lru和lfu的區(qū)別

時間:t1~~~~~t2~~~~~t3~~~~t4
~~~~A~A~A~~A~A~A~A~A~~A~~~
~~~~B~~~~~~B~~~~~~B~~~~~~B~

在上圖中,分別表示key A和B的使用情況,在t4時刻根據(jù)lru和lfu兩種淘汰策略:

  • lru策略:因為最近使用的是B,所以會淘汰A;
  • lfu策略:A的使用頻率高很多,所以淘汰的是B;
?著作權(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)容

  • 摘要 Redis是一款優(yōu)秀的、開源的內(nèi)存數(shù)據(jù)庫,我在閱讀Redis源碼實現(xiàn)的過程中,時時刻刻能感受到Redis作者...
    架構(gòu)飛毛腿閱讀 979評論 0 1
  • 長期將Redis作為緩存使用,難免會遇到內(nèi)存空間存儲瓶頸,當(dāng)Redis內(nèi)存超出物理內(nèi)存限制時,內(nèi)存數(shù)據(jù)就會與磁盤產(chǎn)...
    呂艷凱閱讀 248評論 0 0
  • redis 是內(nèi)存數(shù)據(jù)庫,可以通過 redis.conf 配置 maxmemory,限制 redis 內(nèi)存使用量。...
    wenfh2020閱讀 841評論 0 0
  • 失效策略上,Redis支持多大6種的數(shù)據(jù)淘汰策略: volatile-lru:從已設(shè)置過期時間的數(shù)據(jù)集(serve...
    luoyoub閱讀 574評論 0 2
  • 一 Redis 內(nèi)存配置 Redis是基于內(nèi)存的key-value數(shù)據(jù)庫,因為系統(tǒng)的內(nèi)存大小有限,所以我們在使用R...
    花神子閱讀 607評論 0 1

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