使用SSH工具(如PuTTY或终端)登录到运行Redis的Ubuntu服务器,确保具备root或sudo权限。
Redis的主配置文件通常位于/etc/redis/redis.conf,使用文本编辑器(如nano)打开:
sudo nano /etc/redis/redis.conf
在配置文件中找到maxmemory参数(默认可能被注释,以#开头),取消注释并设置为所需内存大小(支持gb、mb等单位,如4gb、512mb)。例如,限制Redis使用8GB内存:
maxmemory 8gb
说明:maxmemory用于限制Redis占用的最大内存,避免过度消耗系统资源。需根据服务器总内存和应用需求合理设置(建议预留10%-20%内存给系统和其他进程)。
找到maxmemory-policy参数(默认可能为noeviction),取消注释并选择合适的淘汰策略。常见策略及适用场景:
allkeys-lru:从所有键中淘汰最近最少使用的键(推荐用于通用缓存场景,平衡性能与数据保留)。volatile-lru:仅从设置了过期时间的键中淘汰最近最少使用的键(适用于有明确过期时间的缓存)。allkeys-random:从所有键中随机淘汰(适用于对数据一致性要求低的场景)。noeviction:不淘汰键,内存满时写入操作返回错误(适用于必须保留所有数据的场景,如数据库)。示例(设置为allkeys-lru):
maxmemory-policy allkeys-lru
修改配置文件后,按Ctrl+O保存、Ctrl+X退出编辑器。重启Redis服务使配置生效:
sudo systemctl restart redis
使用redis-cli工具连接Redis,执行以下命令检查maxmemory设置:
redis-cli
CONFIG GET maxmemory
若返回结果为设置的内存值(如8589934592,即8GB),则说明配置成功。
定期监控Redis内存使用,避免意外增长导致性能问题。常用命令:
redis-cli info memory
Ctrl+C退出):redis-cli monitor
allkeys-lru是通用场景的推荐选择,但如果数据有明确的过期时间,volatile-lru更高效。maxmemory可能导致系统内存耗尽,引发OOM(Out of Memory)错误。sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak),便于恢复。