redis 淘汰策略

2021-10-14 21:54:07 字數 756 閱讀 8765

redis 淘汰策略有哪些?

1,volatile-lru:從已設定過期時間的雜湊表(server.db[i].expires)中隨機挑選多個key,然後在選到的key中用lru演算法淘汰最近最少使用的資料

2,allkey-lru:從所有key的雜湊表(server.db[i].dict)中隨機挑選多個key,然後再選到的key中利用lru演算法淘汰最近最少使用的資料

3,volatile-ttl:從已設定過期時間的雜湊表(server.db[i].expires)中隨機挑選多個key,然後在選到的key中選擇過期時間最小的資料淘汰掉。

4,volatile-random:從已設定過期時間的雜湊表(server.db[i].expires)中隨機挑選key淘汰掉。

5,allkey-random:從所有的key的雜湊表(server.db[i].dict)中隨機挑資料淘汰

6,no-eviction(驅逐):記憶體達到上限,不淘汰資料。

策略選擇:

如果分為熱資料與冷資料, 推薦使用 allkeys-lru 策略。 也就是, 其中一部分key經常被讀寫. 如果不確定具體的業務特徵, 那麼 allkeys-lru 是乙個很好的選擇。

如果需要迴圈讀寫所有的key, 或者各個key的訪問頻率差不多, 可以使用 allkeys-random 策略, 即讀寫所有元素的概率差不多。

假如要讓 redis 根據 ttl 來篩選需要刪除的key, 請使用 volatile-ttl 策略。

Redis淘汰策略

將 redis 用作快取時,如果記憶體空間用滿,就會自動驅逐老的資料。maxmemory用於指定 redis 能使用的最大記憶體。既可以在redis.conf檔案中設定,也可以在執行過程中通過 config set 命令動態修改 當記憶體使用達到最大限制時,如果需要儲存新資料,根據配置的策略 pol...

redis 淘汰策略

lru least recently used 演算法,如果資料最近被訪問過,那麼將來被剛問的機率也是很高的。lfu lfu 如果資料過去被訪問多次,那麼將來被剛問的機率也是更高。過期策略 1惰性刪除,當key被訪問時檢查改key的過期時間,若已過期刪除,已過期未被訪問的資料保持在記憶體中,小號記憶...

redis資料淘汰策略

在 redis 中,允許使用者設定最大使用記憶體大小 server.maxmemory,在記憶體限定的情況下是很有用的。譬如,在一台 8g 機子上部署了 4 個 redis 服務點,每乙個服務點分配 1.5g 的記憶體大小,減少記憶體緊張的情況,由此獲取更為穩健的服務。redis 記憶體資料集大小上...