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 结合使用)
优化网络连接maxclientstcp-keepalive
使用多线程io-threads)提高并发能力(仅 6.0+ 支持)
开启慢查询日志slowlog-log-slower-than)监控性能

这些配置可以结合你的具体业务场景进行调整。你目前的 Redis 是要用于缓存、数据库存储,还是其他用途?