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
命令(避免阻塞)检查过期键情况。