配置详解
Valkey 通过 valkey.conf 文件进行配置。本文详解生产环境中最重要的配置项。
网络配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
bind | 127.0.0.1 | 绑定的网络接口。生产环境建议绑定具体 IP |
port | 6379 | 监听端口 |
tcp-backlog | 511 | TCP 连接队列长度,高并发场景建议调至 1024+ |
timeout | 0 | 客户端空闲超时(秒),0 表示不主动断开 |
tcp-keepalive | 300 | TCP 心跳间隔(秒),用于检测死连接 |
内存管理
内存配置是 Valkey 调优的核心。关键配置项:
conf复制
# 最大内存限制(必须设置) maxmemory 2gb # 内存淘汰策略 # allkeys-lru - 所有键中淘汰最近最少使用的(推荐缓存场景) # volatile-lru - 仅淘汰设置了过期时间的键 # noeviction - 不淘汰,内存满时返回错误(默认) maxmemory-policy allkeys-lru # LRU 采样精度(越大越精确,但消耗 CPU) maxmemory-samples 10
建议:始终设置 maxmemory。不设置的话,Valkey 会持续使用内存直到 OOM 被系统杀死。
持久化配置
RDB 快照
conf复制
# RDB 触发条件:900秒内至少1个键变更 save 900 1 save 300 10 save 60 10000 # RDB 文件名和路径 dbfilename dump.rdb dir /var/lib/valkey # BGSAVE 出错时是否停止写入 stop-writes-on-bgsave-error yes # 压缩 RDB 文件 rdbcompression yes
AOF 日志
conf复制
# 开启 AOF appendonly yes # 刷盘策略 # always - 每条命令都 fsync(最安全,最慢) # everysec - 每秒 fsync(推荐,最多丢1秒数据) # no - 由 OS 决定(最快,可能丢数据) appendfsync everysec # AOF 重写(自动压缩日志) auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb
安全配置
conf复制
# 设置密码 requirepass your-strong-password-here # 重命名危险命令(防止误操作) rename-command FLUSHALL "" rename-command FLUSHDB "" rename-command CONFIG "" # ACL 用户(Valkey 6.0+) user admin on >password ~* +@all
安全清单:生产环境必须完成:设置 requirepass、限制 bind 地址、关闭或重命名危险命令、开启 TLS(如需跨公网通信)。
运行时修改
大部分配置可以通过命令行动态修改,无需重启:
valkey复制
# 查看当前配置 CONFIG GET maxmemory # 动态修改(立即生效,不写入配置文件) CONFIG SET maxmemory 4gb # 写入配置文件使其持久化 CONFIG REWRITE