Redis的运行行为由配置文件控制,Windows系统为redis.windows.conf,Linux系统为redis.conf。本文介绍如何通过CONFIG命令动态查看和修改配置,以及如何编辑配置文件实现远程访问等高级设置,并提供核心参数的分类说明,便于快速排查与调优。
使用CONFIG命令查看配置项
在Redis安装目录中,Windows系统使用redis.windows.conf,Linux系统使用redis.conf。运行时可通过CONFIG GET命令查看当前生效的配置值。
查看单个配置项的语法如下:
redis 127.0.0.1:6379> CONFIG GET 配置名称
例如获取日志级别:
redis 127.0.0.1:6379> CONFIG GET loglevel
输出结果为键值对形式:
1) "loglevel" 2) "notice"
使用通配符*可列出所有配置项:
redis 127.0.0.1:6379> CONFIG GET *
输出示例(部分):
1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "cluster-announce-ip" 8) "" 9) "unixsocket" 10) "" 11) "logfile" 12) "" 13) "pidfile" 14) "" 15) "slave-announce-ip" 16) "" 17) "replica-announce-ip" 18) "" 19) "maxmemory" 20) "0" 21) "proto-max-bulk-len" 22) "536870912" 23) "client-query-buffer-limit" 24) "1073741824" 25) "maxmemory-samples" 26) "5" 27) "lfu-log-factor" 28) "10" 29) "lfu-decay-time" 30) "1" 31) "timeout" 32) "0" 33) "active-defrag-threshold-lower" 34) "10" 35) "active-defrag-threshold-upper" 36) "100" 37) "active-defrag-ignore-bytes" 38) "104857600" .....

图1:Redis配置项
注意:不同Redis版本和操作系统下,配置项数量与名称可能存在差异。
动态修改配置项与日志级别
使用CONFIG SET可在运行时修改部分配置,语法如下:
redis 127.0.0.1:6379> CONFIG SET 配置项名称 配置项参数值
示例:将日志级别调整为verbose并验证:
127.0.0.1:6379> CONFIG SET loglevel "verbose" OK 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "verbose"
Redis支持四种日志级别:
debug:输出详细信息,适用于开发和测试阶段。verbose:包含较多信息,但比debug精简。notice:适用于生产环境。warning:仅记录警告信息。
默认日志级别为verbose,开发测试建议使用debug,生产环境推荐notice。通过CONFIG SET修改的配置仅在当前会话生效,重启后将恢复为配置文件中的值。
修改配置文件实现远程连接
部分配置(如网络绑定、保护模式)无法通过命令动态修改,需直接编辑配置文件。以允许远程连接为例,步骤如下:
- 注释本地绑定并指定外部IP:
#bind 127.0.0.1 ::1 bind 192.168.1.1
- 关闭保护模式:
protected-mode no
- 重启Redis服务使配置生效:
- Windows:
redis-server --service-stop redis-server --service-start
- Linux:
sudo /etc/init.d/redis-server restart
- Windows:
修改配置文件后务必重启服务,否则新配置不会加载。
核心配置项分类说明
以下按功能分类列出常用配置项及其作用,便于快速查阅与调整。
网络与连接
| 配置项 | 参数 | 说明 |
|---|---|---|
| port | 6379 | 指定Redis监听端口,默认6379。 |
| bind | 127.0.0.1 | 绑定的主机地址,限制可访问的IP。 |
| timeout | 0 | 客户端闲置秒数后关闭连接,0表示不启用。 |
进程与日志
| 配置项 | 参数 | 说明 |
|---|---|---|
| daemonize | no/yes | 默认no,改为yes后以守护进程方式运行。 |
| pidfile | 文件路径 | 守护进程运行时写入PID的文件路径。 |
| loglevel | notice | 日志级别:debug、verbose、notice、warning,默认notice。 |
| logfile | stdout | 日志输出方式,默认为标准输出。 |
数据库与持久化
| 配置项 | 参数 | 说明 |
|---|---|---|
| databases | 16 | 数据库数量(0-15),默认使用0库,可通过SELECT切换。 |
| save [seconds] [changes] | save 900 1 save 300 10 save 60 10000 | RDB快照触发条件:指定时间内达到指定写入次数即同步到磁盘。 |
| rdbcompression | yes/no | 存储RDB文件时是否压缩数据,默认yes。 |
| dbfilename | dump.rdb | RDB持久化文件名,默认dump.rdb。 |
| dir | ./ | 本地数据库文件存放目录。 |
| appendfilename | appendonly.aof | AOF持久化文件名,默认appendonly.aof。 |
安全与性能
| 配置项 | 参数 | 说明 |
|---|---|---|
| requirepass | foobared(默认关闭) | 设置连接密码,启用后客户端需通过AUTH认证。 |
| maxmemory | 最大内存限制 | 达到上限后尝试清除过期Key;若仍超限则拒绝写入,允许读取。 |
| slaveof | 主从复制配置 | 设置本机为slave时自动同步的master地址与端口。 |
| glueoutputbuf | yes | 是否将小响应包合并发送,默认开启。 |
如需获取完整配置项说明,可访问Redis官方网站查阅对应版本的文档。
