Redis所需記憶體 超過可用記憶體怎麼辦

2022-01-15 23:09:49 字數 803 閱讀 7481

我們知道,redis設定配置檔案的maxmemory引數,可以控制其最大可用記憶體大小(位元組)。

那麼當所需記憶體,超過maxmemory怎麼辦?

這個時候就該配置檔案中的maxmemory-policy出場了。

其預設值是noeviction

下面我將列出當可用記憶體不足時,刪除redis鍵具有的淘汰規則。

規則名稱

規則說明

volatile-lru

使用lru演算法刪除乙個鍵(只對設定了生存時間的鍵)

allkeys-lru

使用lru演算法刪除乙個鍵

volatile-random

隨機刪除乙個鍵(只對設定了生存時間的鍵)

allkeys-random

隨機刪除乙個鍵

volatile-ttl

刪除生存時間最近的乙個鍵

noeviction

不刪除鍵,只返回錯誤

lru演算法,least recently used,最近最少使用演算法。也就是說預設刪除最近最少使用的鍵。

但是一定要注意一點!redis中並不會準確的刪除所有鍵中最近最少使用的鍵,而是隨機抽取3個鍵,刪除這三個鍵中最近最少使用的鍵。

那麼3這個數字也是可以設定的,對應位置是配置檔案中的maxmeory-samples.

Redis所需記憶體超過可用記憶體解決方案

我們知道,redis設定配置檔案的maxmemory引數,可以控制其最大可用記憶體大小 位元組 那麼當所需記憶體,超過maxmemory怎麼辦?這個時候就該配置檔案中的maxmemory policy出場了。其預設值是noeviction。下面我將列出當可用記憶體不足時,刪除redis鍵具有的淘汰規...

介紹幾種redis資料超過可用記憶體的處理方式

一 處理方式有很多種,例如 1 修改redis.conf中的maxmemory policy選項 2 加記憶體 3 縮短 或設定 資料過期時間,以釋放記憶體 4 redis集群 當然還有其他更好的方式 二 通過修改redis.conf中maxmemory policy選項,設定刪除redis鍵的淘汰...

iOS可用記憶體限制

ipad2可以占用到300m以上,這個不太穩定,可能衝到350就被殺掉了。可以在收到記憶體警告的時候自己的程式內部做些記憶體釋放處理。另外可能在記憶體緊張時裝置的cpu也非常緊張或正在超頻,那你即使在程式中對系統記憶體警告進行了處理,基本上也於事無補了,會crash。因為系統的記憶體警告有一定的滯後...