Redis 5.0 的配置文件redis.conf 是Redis服务器的核心配置,包含了丰富的配置选项,以下是Redis 5.0 配置文件的主要部分以及关键参数详细解析:
基本配置
守护进程模式
daemonize yes
- 控制Redis是否以守护进程方式运行
- yes 表示后台运行,no表示前台运行
监听端口
port 6379
- Redis 默认监听端口为6379
- 可以修改为其他端口以增强安全性
绑定IP
bind 127.0.0.1
- 指定Redis监听的IP地址
- 默认只允许本地访问
- 如需远程访问可设置为 0.0.0.0 或者指定IP
保护模式
protected-mode yes
- 安全保护机制
- 当未设置密码且未绑定IP时,只允许本地访问
持久化配置
RDB 快照
save 900 1
save 300 10
save 60 10000
指定在多长时间内多少次更新操作就将数据同步到数据文件
默认配置表示
-
- 900 s 内有1个更改
- 300 s 内有10个更改
- 60 s 内有10000个更改
RDB 文件配置
dbfilename dump.rdb
dir ./
- 指定RDB文件名称
- dir 指定RDB 和AOF文件的存储目录
AOF 持久化
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
appendonly 是否开启AOF 持久化
appendfilename AOF 文件名
appendfsync 同步策略
-
- always:每次写入都同步
- everysec:每秒同步(默认)
- no :由操作系统决定
内存管理
最大内存限制
maxmemory 0
maxmemory-policy noeviction
maxmemory:设置Redis最大内存限制,0表示无限制
maxmemory-policy 内存达到上限时的处理策略
-
volatile-lru
:从设置了过期时间的键中使用 LRU 算法淘汰allkeys-lru
:从所有键中使用 LRU 算法淘汰noeviction
:不淘汰,新写入操作会报错(默认)
安全配置
密码认证
requirepass ""
- 设置Redis 连接密码
- 默认无密码,建议设置强密码
命令重命名
rename-command CONFIG ""
- 可以重命名或者禁用危险命令
- 实力表示禁用Config 命令
高级配置
复制(主从)
replicaof <masterip> <masterport>
masterauth <master-password>
replicaof
配置从服务器复制的主服务器masterauth
设置主服务器密码
集群
cluster-enabled yes
cluster-config-file nodes-6379.conf
- cluster-enabled 是否启用集群模式
- cluster-config-file 集群配置文件
性能调优
TCP 连接
tcp-backlog 511
tcp-keepalive 300
- tcp-backlog 设置TCP连接队列长度
- tcp-keepalive 设置TCP连接保活时间
客户端连接
maxclients 10000
- 设置同时连接的最大客户端数量
日志配置
日志级别
loglevel notice
logfile ""
- loglevel 日志级别(debug/verbose/notice/warning)
- logfile 指定日志文件路径,空表示标准输出
性能优化的标准
核心性能优化项
- 内存优化
- 使用
ziplist
编码压缩小数据(调整hash-max-ziplist-entries
、list-max-ziplist-size
等) - 启用
jemalloc
内存分配器(默认已启用) - 设置合理的
maxmemory
并配置淘汰策略(如volatile-lru
或allkeys-lru
) - 避免大Key(单Key超过10KB需拆分)
- 网络与连接
- 限制最大连接数(
maxclients
,建议为系统最大文件描述符数的70%) - 启用TCP Keepalive(
tcp-keepalive 60
) - 使用连接池(客户端配置,如Jedis的
maxTotal
)
- 持久化调优
RDB:调整
save
阈值(如save 900 1
)或禁用自动保存AOF:
-
- 策略选择:
appendfsync everysec
(平衡性能与安全) - 开启
aof-rewrite-incremental-fsync
减少重写时磁盘压力
- 策略选择:
混合持久化:
aof-use-rdb-preamble yes
(Redis 4.0+)
- 数据结构选择
- 高频写入场景使用
Hash
替代多个String
- 有序集合需控制
zset-max-ziplist-entries
进阶配置
- 内核参数调优
- 禁用透明大页(THP):
echo never > /sys/kernel/mm/transparent_hugepage/enabled
- 提高
somaxconn
(如65535
)避免连接丢弃 - 优化
vm.overcommit_memory=1
(避免OOM Killer)
- 集群优化
- 分片大小控制在10GB以内
- 使用
CRC16
以外的哈希算法(如xxHash
)需自定义 - 避免跨机房部署(延迟敏感)
- 客户端优化
- Pipeline批量操作(减少RTT)
- Lua脚本避免长耗时操作(
SCRIPT KILL
保护)
监控与维护
- 关键指标监控
- 内存:
used_memory
、mem_fragmentation_ratio
(>1.5需告警) - 延迟:
redis-cli --latency
(超过5ms需排查) - 命中率:
keyspace_hits/(keyspace_hits+keyspace_misses)
(低于90%需优化)
- 运维命令
- 慢查询分析:
SLOWLOG GET
(配置slowlog-log-slower-than 10ms
) - 内存分析:
redis-cli --bigkeys
、MEMORY USAGE key
- 连接统计:
CLIENT LIST
- 定期维护
- 主从节点错峰执行
BGSAVE
- 每月检查
config set
动态参数有效性
性能测试基准
- 基准测试工具:
redis-benchmark -t set,get -n 100000 -c 50 -P 10
- 要求:单节点QPS ≥5万(普通服务器)
- 压测需覆盖:混合读写、不同数据大小(100B~10KB)
调优优先级矩阵
场景 | 首要优化项 |
---|---|
内存不足 | 淘汰策略 + 数据结构压缩 |
高延迟 | 网络配置 + 内核参数 |
CPU饱和 | Pipeline + 慢查询优化 |