作为一款高性能的内存数据库,Redis的内存配置对其性能和稳定性至关重要。以下是如何调整Redis内存配置参数的专业指导:
maxmemory <bytes>
maxmemory 4gb
或 maxmemory 1024000000
(字节)maxmemory-policy <policy>
可选策略:
- volatile-lru
:从设置了过期时间的键中使用LRU算法淘汰
- allkeys-lru
:从所有键中使用LRU算法淘汰
- volatile-lfu
:从设置了过期时间的键中使用LFU算法淘汰
- allkeys-lfu
:从所有键中使用LFU算法淘汰
- volatile-random
:从设置了过期时间的键中随机淘汰
- allkeys-random
:从所有键中随机淘汰
- volatile-ttl
:淘汰剩余生存时间(TTL)最短的键
- noeviction
:不淘汰,达到内存限制时返回错误(默认)
maxmemory-samples 5
生产环境必须设置maxmemory:防止Redis占用所有系统内存
根据使用场景选择淘汰策略:
allkeys-lru
或allkeys-lfu
volatile-lru
配合设置过期时间noeviction
(但需确保有足够内存)内存计算:
# 查看当前内存使用
redis-cli info memory
# 计算键的内存使用
redis-cli --bigkeys
32位系统限制:32位Redis实例最大使用3GB内存
无需重启Redis即可调整:
redis-cli config set maxmemory 2gb
redis-cli config set maxmemory-policy allkeys-lru
used_memory
和used_memory_rss
指标evicted_keys
计数器# redis.conf内存相关配置示例
maxmemory 8gb
maxmemory-policy allkeys-lru
maxmemory-samples 7
通过合理配置这些参数,可以确保Redis在内存使用和性能之间取得最佳平衡。