在Ubuntu中优化Redis内存使用可从以下方面入手:
- 限制最大内存:修改
/etc/redis/redis.conf,设置maxmemory参数为合理值(如服务器可用内存的70%~80%),避免过度占用内存。 - 配置内存淘汰策略:通过
maxmemory-policy参数选择策略,常用allkeys-lru(淘汰最近最少使用的键)或volatile-lru(仅淘汰有过期时间的键),确保内存不足时自动释放空间。 - 优化数据结构:根据业务需求选择高效的数据结构,如用哈希表存储对象,减少键值对数量。
- 调整持久化策略:
- RDB快照:通过
save配置控制保存频率,避免频繁生成快照占用内存。 - AOF重写:启用
auto-aof-rewrite-percentage和auto-aof-rewrite-min-size,减少AOF文件体积。
- RDB快照:通过
- 清理过期数据:确保
expire命令正确设置键的过期时间,利用Redis定期删除+惰性删除机制自动清理过期数据。 - 禁用非必要功能:如无需Lua脚本支持,可在配置中添加
disable_scripting yes。 - 监控与调优:使用
redis-cli info memory或第三方工具(如RedisInsight)监控内存使用,定期分析并调整配置。
修改配置后需重启Redis服务生效:sudo systemctl restart redis-server。