redis 快取 淘汰

2021-10-09 03:45:15 字數 838 閱讀 3604

lru(least recently used,最近最少使用)

其核心思想是「如果資料最近被訪問過,那麼將來被訪問的機率也更高」。

基本思路

新資料插入到列表頭部;

每當快取命中(即快取資料被訪問),則將資料移到列表頭部;

當列表滿的時候,將列表尾部的資料丟棄。

lfu(least frequently used 最近最少使用演算法)

它是基於「如果乙個資料在最近一段時間內使用次數很少,那麼在將來一段時間內被使用的可能性也很小」的思路。

redis的記憶體淘汰策略是指在redis的用於快取的記憶體不足時,怎麼處理需要新寫入且需要申請額外空間的資料。

noeviction:當記憶體不足以容納新寫入資料時,新寫入操作會報錯。

allkeys-lru:當記憶體不足以容納新寫入資料時,在鍵空間中,移除最近最少使用的key。

allkeys-random:當記憶體不足以容納新寫入資料時,在鍵空間中,隨機移除某個key。

volatile-lru:當記憶體不足以容納新寫入資料時,在設定了過期時間的鍵空間中,移除最近最少使用的key。

volatile-random:當記憶體不足以容納新寫入資料時,在設定了過期時間的鍵空間中,隨機移除某個key。

volatile-ttl:當記憶體不足以容納新寫入資料時,在設定了過期時間的鍵空間中,有更早過期時間的key優先移除。

redis 4.x 後支援lfu策略,最少頻率使用

allkeys-lfu

volatile-lfu

redis淘汰策略的配置

maxmemory 最大使用記憶體數量

maxmemory-policy noeviction 淘汰策略

Redis快取淘汰策略

在使用redis時,我們一般會為redis的快取空間設定乙個大小,不會讓資料無限制的放入redis快取。對於 redis 來說,一旦確定了快取最大容量,比如 4gb,你就可以使用下面這個命令來設定快取的大小了 config set maxmemory 4gb redis設定了快取的容量大小,那麼快取...

Redis 快取的淘汰策略

redis官方給的警告,當記憶體不足時,redis會根據配置的快取策略淘汰部分keys,以保證寫入成功。當無淘汰策略時或沒有找到適合淘汰的key時,redis直接返回out of memory錯誤。1 volatile lru 從已設定過期時間的資料集 server.db i expires 中挑選...

Redis的快取淘汰策略

先進先出演算法 fifo least frequently used lfu 淘汰一定時期內被訪問次數最少的頁面,以次數作為參考 least recently used lru 淘汰最長時間未被使用的頁面,以時間作為參考 這些演算法在不同層次的快取上執行時擁有不同的效率和代價,需根據具體場合選擇最合...