Redis 的内存配置参数主要分为以下几类,以下是详细说明和关键参数:
maxmemory
maxmemory 4gb
)。maxmemory-policy
)。maxmemory-policy
volatile-lru
:对设置了过期时间的键使用 LRU 淘汰。allkeys-lru
:对所有键使用 LRU 淘汰(推荐)。volatile-ttl
:淘汰剩余存活时间最短的键。volatile-random
/ allkeys-random
:随机淘汰。noeviction
:不淘汰,返回错误(默认)。hash-max-ziplist-entries
/ hash-max-ziplist-value
hash-max-ziplist-entries 512 # 哈希元素数 ≤512 时用 ziplist
hash-max-ziplist-value 64 # 单个元素值 ≤64 字节时用 ziplist
类似参数(其他数据结构):
list-max-ziplist-entries
/ list-max-ziplist-value
zset-max-ziplist-entries
/ zset-max-ziplist-value
set-max-intset-entries
(整数集合优化)active-expire-effort
(Redis 6.2+)
hz
activedefrag
yes
/no
)。active-defrag-*
系列参数
plaintext
active-defrag-threshold-lower 10 # 内存碎片率≥10%时触发
active-defrag-cycle-min 5 # 最小CPU占用百分比
active-defrag-cycle-max 75 # 最大CPU占用百分比
client-output-buffer-limit
client-output-buffer-limit normal 0 0 0 # 普通客户端无限制
client-output-buffer-limit slave 256mb 64mb 60 # 从库限制
replica-ignore-maxmemory
maxmemory
(默认 yes
,从库不淘汰数据)。maxmemory
:避免系统OOM。allkeys-lru
或 volatile-lru
。*-ziplist-*
参数。mem_fragmentation_ratio > 1.5
,考虑启用 activedefrag
。通过合理配置这些参数,可以显著优化 Redis 的内存使用效率和稳定性。建议结合 INFO MEMORY
命令监控内存状态。