Redis在Ubuntu上的优化设置指南
maxmemory参数设置Redis使用的最大内存(如maxmemory 4gb),防止内存溢出导致系统崩溃。需根据服务器内存容量和应用需求调整,建议预留10%-20%内存给系统和其他进程。maxmemory-policy选择淘汰策略。常用策略包括allkeys-lru(淘汰所有键中最近最少使用的键,适用于大多数场景)和volatile-lru(仅淘汰设置了过期时间的键,适用于有明确过期时间的业务)。save 900 1(900秒内至少1次写操作触发快照)、save 300 10(300秒内至少10次写操作触发快照)。appendonly yes(启用AOF)、appendfsync everysec(每秒同步一次,平衡性能与数据安全)。aof-use-rdb-preamble yes),结合RDB的快速恢复和AOF的增量备份优势,提升恢复效率和数据安全性。BGREWRITEAOF命令(或配置auto-aof-rewrite-percentage 100、auto-aof-rewrite-min-size 64mb)减小AOF文件大小,提高恢复速度。bind参数为服务器具体IP(如bind 192.168.1.100),避免监听所有接口,提升安全性。tcp-backlog(tcp-backlog 4096):提高并发连接处理能力,避免连接堆积。tcp-keepalive(tcp-keepalive 60):检测死连接,释放无效资源。timeout参数设置客户端闲置超时时间(如timeout 300,单位:秒),释放长期不活动的连接。/etc/security/limits.conf,添加redis soft nofile 65535、redis hard nofile 65535(允许Redis打开更多文件描述符,应对高并发连接)。sysctl -w net.ipv4.tcp_tw_reuse=1(复用TIME_WAIT状态的连接)、sysctl -w net.core.somaxconn=4096(增加TCP连接队列长度)。redis.conf中设置disable_scripting yes(禁用Lua脚本)、slowlog-log-slower-than 0(关闭慢查询日志),减少资源消耗。redis-cli --stat(实时查看内存、命令执行数等指标)、redis-cli --latency(检测网络延迟)或第三方工具(如RedisInsight、Prometheus+Grafana)监控Redis性能。slowlog-log-slower-than 10000(记录执行时间超过10毫秒的命令)、slowlog-max-len 128(保留最近128条慢查询记录),通过SLOWLOG GET命令分析慢查询,优化高频慢命令(如避免KEYS *这种全表扫描命令)。SCAN命令(避免阻塞)检查过期键情况。