Redis 的常规配置
Redis 的常规配置
Redis 的常规配置主要包括 内存管理、持久化、网络、性能优化、安全性 等方面。以下是 Redis redis.conf
文件中的一些重要配置项:
1. 基础配置
# 绑定监听 IP(默认绑定 127.0.0.1)
bind 127.0.0.1
# 监听端口(默认 6379)
port 6379
# 设置工作目录(持久化文件存储位置)
dir /var/lib/redis/
# 以守护进程方式运行(后台运行)
daemonize yes
# 日志文件路径
logfile "/var/log/redis.log"
# 设置 Redis 服务器名称
# requirepass yourpassword
2. 内存管理
# 设置 Redis 最大可用内存(示例 4GB)
maxmemory 4gb
# 超过 maxmemory 后的淘汰策略:
# noeviction:拒绝写入
# allkeys-lru:所有键基于 LRU 进行淘汰
# volatile-lru:仅对有过期时间的键使用 LRU 淘汰
# allkeys-random:所有键随机淘汰
# volatile-random:有过期时间的键随机淘汰
# volatile-ttl:淘汰 TTL 最小的键
maxmemory-policy allkeys-lru
# 开启主动内存整理,减少碎片化
activedefrag yes
3. 持久化 (RDB/AOF)
RDB(快照持久化)
# 900 秒内至少 1 次写入,则生成 RDB
save 900 1
# 300 秒内至少 10 次写入,则生成 RDB
save 300 10
# 60 秒内至少 10000 次写入,则生成 RDB
save 60 10000
# RDB 文件名称
dbfilename dump.rdb
# RDB 存储目录(与 dir 保持一致)
dir /var/lib/redis/
# 是否在 RDB 保存失败时停止服务(建议关闭)
stop-writes-on-bgsave-error no
AOF(追加式日志持久化)
# 开启 AOF 持久化(默认关闭)
appendonly yes
# AOF 文件名
appendfilename "appendonly.aof"
# AOF 刷新策略:
# always(每次写入立即 fsync,最安全但性能最差)
# everysec(每秒 fsync 一次,推荐)
# no(由操作系统控制,可能丢失数据)
appendfsync everysec
# AOF 重写规则(文件大小增长 100% 时触发)
auto-aof-rewrite-percentage 100
# AOF 重写最小文件大小(低于 64MB 不触发)
auto-aof-rewrite-min-size 64mb
4. 网络配置
# 客户端连接超时时间(0 代表无限制)
timeout 0
# 设置 Redis 最大客户端连接数(默认 10,000)
maxclients 10000
# 允许外部访问(谨慎开启)
protected-mode no
# 关闭 TCP 连接时,是否使用 `SO_LINGER` 防止数据丢失
tcp-keepalive 300
5. 性能优化
# 开启大 key 提醒(key 大于 64KB 时触发日志)
latency-monitor-threshold 64
# 指定 Redis 线程数(默认为 1,多核优化)
# 在 Redis 6.0 以上可以启用 I/O 多线程
io-threads 4
6. 复制 (Master-Slave)
# 指定主节点地址(作为从节点时配置)
# replicaof <master-ip> <master-port>
replicaof 192.168.1.100 6379
# 复制时是否阻塞主节点写入(默认 yes,影响性能)
repl-diskless-sync yes
# 复制超时时间(秒)
repl-timeout 60
7. 哨兵 (Sentinel)
# Sentinel 监控主节点,触发自动故障转移
# sentinel monitor mymaster 127.0.0.1 6379 2
8. 访问控制 (ACL)
# 启用密码访问
requirepass strongpassword
# 配置 ACL 规则(Redis 6.0+)
# user default on >mypassword allcommands allkeys
9. 日志和监控
# 日志级别(debug、verbose、notice、warning)
loglevel notice
# 记录慢查询(超过 10 毫秒的命令)
slowlog-log-slower-than 10000
# 记录最大慢查询条目(默认 128)
slowlog-max-len 128
10. 事务和 Lua 脚本
# Lua 脚本执行超时(毫秒)
lua-time-limit 5000
总结
如果你要配置 Redis 高性能部署,可以参考以下策略: ✅ 调优内存管理(maxmemory
+ maxmemory-policy
)
✅ 选择合适的持久化方案(AOF everysec
或 RDB 结合使用)
✅ 优化网络连接(maxclients
、tcp-keepalive
)
✅ 使用多线程(io-threads
)提高并发能力(仅 6.0+ 支持)
✅ 开启慢查询日志(slowlog-log-slower-than
)监控性能
这些配置可以结合你的具体业务场景进行调整。你目前的 Redis 是要用于缓存、数据库存储,还是其他用途?