redis數據淘汰機制

  1. volatile-lru:從已設置過時時間的數據集(server.db[i].expires)中挑選最近最少使用 的數據淘汰
  2. volatile-ttl:從已設置過時時間的數據集(server.db[i].expires)中挑選將要過時的數 據淘汰
  3. volatile-random:從已設置過時時間的數據集(server.db[i].expires)中任意選擇數據 淘汰
  4. allkeys-lru:從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰
  5. allkeys-random:從數據集(server.db[i].dict)中任意選擇數據淘汰
  6. no-enviction(驅逐):禁止驅逐數據

1.LRUredis

在數據集中隨機挑選幾個鍵值對,取出其中 lru 最大的鍵值對淘汰。因此,你會發現,Redis 並非保證取得全部數據集中最近最少使用(LRU)的鍵值對,而只是隨機挑選的幾個鍵值對中的。dom

2.TTLserver

從過時時間 redisDB.expires 表中隨機挑選幾個鍵值對,取出其中 ttl 最大的鍵值對淘汰。一樣你會發現,Redis 並非保證取得全部過時時間的表中最快過時的鍵值對,而只是隨機挑選的幾個鍵值對中的。io