我們知道,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。因為系統的記憶體警告有一定的滯後...