配置详解

Valkey 通过 valkey.conf 文件进行配置。本文详解生产环境中最重要的配置项。

网络配置

配置项默认值说明
bind127.0.0.1绑定的网络接口。生产环境建议绑定具体 IP
port6379监听端口
tcp-backlog511TCP 连接队列长度,高并发场景建议调至 1024+
timeout0客户端空闲超时(秒),0 表示不主动断开
tcp-keepalive300TCP 心跳间隔(秒),用于检测死连接

内存管理

内存配置是 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