一、redis.conf 是什么?
redis 的配置文件(默认命名为 redis.conf
,redis 8.0 之后改为 redis-full.conf
)控制着服务运行的各项参数。该文件采用以下结构:
指令名 参数1 参数2 ... 参数n
例如:
replicaof 127.0.0.1 6380 requirepass "hello world"
- 支持双引号或单引号包裹字符串;
- 双引号可使用
\xff
形式表示 ascii 十六进制字符; - 单引号中可使用反斜线转义。
提示: redis 的官方包中都附带了自说明的 redis.conf 配置文件,建议初学者深入阅读。
二、命令行方式传参(适用于测试)
除了配置文件,还可以通过命令行直接传递配置参数,非常适合临时测试。例如:
./redis-server --port 6380 --replicaof 127.0.0.1 6379
这会启动一个新的 redis 实例,监听 6380 端口,作为 6379 的副本。
命令行参数格式与配置文件一致,区别在于命令行前缀多了 --
。
注意:redis 内部会自动构建一个临时配置文件(或在已有配置上追加),不会影响原始配置文件。
三、运行时动态修改配置(不重启服务)
redis 提供了运行时修改配置的能力,通过 config
命令可实现动态读取与设置参数:
示例:
config get maxmemory config set maxmemory 512mb
不过需要注意:
- 不是所有参数都支持动态修改;
- 修改不会同步写入 redis.conf 文件,下一次重启将恢复原值;
- 若想将内存配置持久化,可执行:
config rewrite
该命令将自动更新配置文件中与当前配置值不符的项,保留原有注释。
四、redis 配置文件常用项说明(精选)
配置项 | 说明 |
---|---|
port | 设置监听端口,默认 6379 |
bind | 限定绑定的 ip 地址,常见设为 127.0.0.1 |
requirepass | 设置密码,启用身份验证(已被 acl 替代) |
aclfile | 指定 acl 用户配置文件 |
appendonly | 启用 aof 持久化 |
dir | 持久化文件写入目录 |
save | 快照保存策略,如 save 900 1 |
maxmemory | 限制最大内存使用量 |
maxmemory-policy | 内存淘汰策略,如 allkeys-lru |
logfile | 日志文件路径 |
daemonize | 是否后台运行(true/false) |
五、redis 作为缓存的配置建议
redis 常被用作缓存系统,如需模拟 memcached 行为,可使用以下配置:
maxmemory 2mb maxmemory-policy allkeys-lru
此模式下,redis 会自动在内存满时根据 近似 lru 算法 淘汰所有 key,而无需程序手动设置 expire
。
淘汰策略常见选项:
noeviction
:不淘汰,返回错误allkeys-lru
:基于访问时间淘汰任意 keyvolatile-lru
:只淘汰设置过expire
的 keyallkeys-random
:随机淘汰任意 key
六、版本变化提示(redis.conf vs redis-full.conf)
- redis 8.0 开始,配置文件名改为
redis-full.conf
,文件更完整,包含全部默认配置; - 旧版本依然使用
redis.conf
; - 官方 github 仓库中提供了每个版本对应的配置样例,便于对比变化:
例如:
- redis 7.4:
redis.conf
- redis 8.0:
redis-full.conf
七、总结:redis 配置文件使用建议
场景 | 建议配置方式 |
---|---|
开发/调试 | 命令行或简化配置文件 |
测试/演示 | 精简配置 + config set |
生产部署 | 使用完整 redis.conf,禁用 config 命令 |
高并发缓存系统 | 配置 maxmemory + lru 淘汰策略 |
acl 用户权限细分 | 启用 aclfile 管理账户 |
tls/加密传输 | 使用 tls-* 系列配置项 |
配置热更新 | 搭配 config rewrite 持久化变更 |
到此这篇关于redis 配置文件使用建议redis.conf 从入门到实战的文章就介绍到这了,更多相关redis 配置文件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论