作为一款高性能的内存数据库,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-lfuvolatile-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在内存使用和性能之间取得最佳平衡。