Redis配置文件详解
- 作者: 五速梦信息网
- 时间: 2026年03月21日 04:37
从节点是否只读(默认yes)
replica-read-only yes
主从复制的网络超时时间(秒,默认60)
repl-timeout 60
主从复制的心跳频率(秒,默认10)
repl-ping-replica-period 10
复制缓冲区大小(用于保存主节点未同步给从节点的写命令,默认1mb)
repl-backlog-size 1mb
复制缓冲区的持久化时间(秒,超过此时长且无从节点连接则释放内存,默认3600)
repl-backlog-ttl 3600
从节点优先级(数值越小优先级越高,0表示不参与选举,默认100)
replica-priority 100
主节点不可用时,从节点是否继续服务读请求(默认yes)
replica-serve-stale-data yes
是否使用无盘复制(主节点直接通过网络发送RDB,避免磁盘I/O,默认no)
repl-diskless-sync no
无盘复制的延迟时间(秒,等待更多从节点连接后一起传输,默认5)
repl-diskless-sync-delay 5
### 安全配置
```csharp
# 设置访问密码(建议使用复杂密码,生产环境必须设置)
requirepass foobared
# 是否启用ACL(访问控制列表,替代传统密码,默认no)
aclfile /etc/redis/users.acl
# 重命名危险命令(例如将FLUSHALL改为安全名称,或禁用命令)
# rename-command FLUSHALL "" # 禁用命令
# rename-command FLUSHALL "FLUSHDB" # 重命名命令(不建议)
网络与连接
# TCP连接的backlog队列长度(默认511,影响短时间内的突发连接处理能力)
tcp-backlog 511
# TCP连接保活时间(秒,默认300)
tcp-keepalive 300
# 是否禁用TCP_NODELAY(默认no,启用Nagle算法减少网络包数量,但可能增加延迟)
tcp-nodelay no
# 客户端闲置超时时间(单位秒,默认0表示不超时)
timeout 0
慢查询日志
# 慢查询阈值(微秒,默认10000=10ms)
slowlog-log-slower-than 10000
# 慢查询日志的最大长度(默认128)
slowlog-max-len 128
I/O 线程
# 是否启用I/O多线程(默认no,4.0+支持,仅加速网络I/O,命令执行仍为单线程)
io-threads-do-reads no
# I/O线程数(建议设置为CPU核心数的一半,不超过8,默认4)
io-threads 4
集群配置(Redis Cluster)
# 是否启用集群模式(默认no),设置为 yes 时,Redis 实例将以集群节点的身份运行,参与集群的管理和数据分布。
cluster-enabled no
# 集群配置文件(自动生成,无需手动编辑)
cluster-config-file nodes.conf
# 节点超时时间(毫秒,默认15000)
cluster-node-timeout 15000
# 故障转移时,从节点复制的最小时长(秒,默认10)
cluster-replica-validity-factor 10
# 集群是否要求所有槽位都被分配(默认yes,避免脑裂)
cluster-require-full-coverage yes
# 从节点是否可以迁移到其他主节点(默认yes)
cluster-migration-barrier 1
发布订阅
# 发布订阅的客户端连接数上限(默认不限制,设为0表示不限制)
pubsub-max-connections 0
# 发布订阅的消息队列长度上限(默认32,防止内存溢出)
client-output-buffer-limit pubsub 32mb 8mb 60
监控与统计
# 是否记录内存分配信息(默认no,生产环境建议关闭)
memtier yes
# 是否记录内存碎片信息(默认yes)
meminfo-command yes
# 是否记录内存分配器的详细信息(默认no)
malloc-stats no
其他配置
# 是否在启动时检查AOF文件(默认yes)
aof-checksum yes
# 是否启用Lua脚本功能(默认yes)
lua-time-limit 5000 # Lua脚本最大执行时间(毫秒,默认5000)
# 是否启用哈希表的渐进式rehash(默认yes,提高性能)
activerehashing yes
# 是否启用大页内存(默认no,启用可能导致延迟问题)
transparent-hugepage yes
# 是否启用客户端追踪(默认no,用于调试客户端请求来源)
client-tracking no
# 客户端追踪的重定向模式(默认OFF)
# - ON:追踪所有客户端
# - REDIRECT:将追踪信息重定向到指定客户端
client-tracking-redirection ""
# 是否启用延迟监控(默认no)
latency-monitor-threshold 0 # 设为0表示禁用,设为具体值(如10)则监控超过此值的操作
# 延迟监控的历史记录长度(默认1024)
latency-history-length 1024
配置文件最佳实践
- 设置 maxmemory 和合理的 maxmemory-policy(如 allkeys-lru)。
- 启用 AOF 持久化(appendonly yes)并设置 appendfsync everysec。
- 配置 requirepass 并禁用危险命令(如 FLUSHALL)。
- 对于读写密集型场景,启用 I/O 线程(io-threads)。
- 根据内存碎片情况调整 activedefrag 参数。
- 禁用不必要的功能(如 Lua 脚本、发布订阅)以减少资源消耗。
- 禁用 protected-mode 并通过 bind 和防火墙限制访问。
- 使用 ACL 替代传统密码认证(Redis 6.0+)。
- 定期备份 RDB 或 AOF 文件到外部存储。
- 上一篇: Redis连接与会话管理
- 下一篇: Redis-友人a的笔记丶


