Redis 內存大小限制+鍵值淘汰策略配置


限制最大內存

windows 的 maxmemory-policy 策略可能會少一些

復制代碼
# 指定 Redis 最大內存限制,Redis 在啟動時會把數據加載到內存中,達到最大內存后,Redis 會先嘗試清除已到期或即將到期的 Key,移除規則可以通過 maxmemory-policy 來指定,當處理后,仍然到達最大內存,將無法再進行寫入操作,但仍然可以進行讀取操作
# Redis 新的 vm 機制,會把 Key 存放內存,Value 會存放在 swap 區
# maxmemory <bytes>
# 3GB = 3*1024*1024*1024=3221225472
maxmemory 3221225472

# 當內存使用達到最大值時,redis 使用的清除策略:
# LRU 表示最近最少使用,LFU 意味着最少使用
# volatile-lru -> 利用 LRU 算法移除設置過過期時間的 key
# allkeys-lru -> 利用 LRU 算法移除任何 key(常用)
# volatile-lfu -> 利用 LFU 算法移除設置過過期時間的 key
# allkeys-lfu -> 利用 LFU 算法移除任何 key
# volatile-random -> 移除設置過過期時間的隨機 key
# allkeys-random -> 移除隨機 key
# volatile-ttl -> 移除即將過期的 key(minor TTL)
# noeviction -> 不移除任何 key,只是返回一個寫錯誤(默認)
maxmemory-policy noeviction

# LRU,LFU 和最小 TTL 算法不是精確的算法,而是近似算法(為了節省內存),默認 Redis 將檢查 5 個鍵並選擇最近使用的鍵,可以配置指令更改樣本大小獲得速度或精度。默認值 5 會產生足夠好的結果,10 非常接近真實的 LRU,但耗 CPU,3 更快,但不是很准確。
maxmemory-samples 5
復制代碼

 

重啟服務

windows

net stop redis 
net start redis

linux

systemctl restart redis

 

命令行方式修改

復制代碼
# 設置 100M
config set maxmemory 104857600
config set maxmemory-policy allkeys-lru
# 查看
config get maxmemory
# maxmemory_human:總共,used_memory_human:已使用
info memory
# 查看所有配置
config get *
復制代碼

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM