Redis最大記憶體淘汰策略

2021-10-09 12:00:13 字數 555 閱讀 3563

redis記憶體超出物理記憶體的限制的時候,會產生記憶體對換(swap)現象,與高速的redis思想相違背。

因此生產環境中,不允許redis有記憶體交換行為,redis提供了配置引數maxmemory限制記憶體。

實際記憶體超出maxmemory的時候,redis提供了幾種可選淘汰策略。

不會繼續服務寫請求,可以繼續讀請求和del請求。保證已有的資料不丟失,但是會讓線上一些業務無法進行。預設策略。

淘汰含有過期時間的,最久未使用的key。

沒有設定過期時間的key不會被淘汰,保證持久化。

淘汰含有過期時間的,ttl最小的key

隨機淘汰含有過期時間的key

淘汰最久未使用的key,範圍是全部key,帶有不帶有過期時間一視同仁。

隨機淘汰key,範圍是全部key,帶有不帶有過期時間一視同仁。

volatile-***只會在含有過期時間的key中選擇淘汰;

allkeys-***會在所有的key中選擇淘汰。

如果僅僅是作為快取,可以使用allkeys淘汰策略;

如果需要持久化功能,可以使用volatile淘汰策略。

redis設定最大記憶體,及淘汰策略

redis設定最大記憶體,及淘汰策略 命令info查詢redis的記憶體及淘汰策略 used memory 由 redis 分配器分配的記憶體總量,包含了redis程序內部的開銷和資料占用的記憶體,以位元組 byte 為單位 used memory human 以更直觀的可讀格式顯示返回使用的記憶體...

Redis之最大記憶體置換策略

redis預設最大記憶體大小是應用程式可訪問的記憶體大小,32位windows下是2gb,linux下是3gb.64位下可以訪問的記憶體為2 64位元組,redis提供了maxmemory欄位來限制使用的最大記憶體.既然提供了最大記憶體限制,那麼當我們程式達到最大值時,redis使用了多種策略進行置...

redis記憶體淘汰策略

lru least recently used,最近很少使用 思想 越最近使用過的資料,接下來使用的機會越大,越應該保留,剔除哪些很久之前使用過的資料 新資料插入到列表頭部 每當快取命中 即快取資料被訪問 則將資料移到列表頭部 當列表滿的時候,將列表尾部的資料丟棄。lfu least frequen...