Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。如果是在 Windows 系统下面,配置文件名为 redis.windows.conf。部分配置文件内容如下:
# 绑定IP地址 bind 127.0.0.1 # 端口 port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 ################################# GENERAL ##################################### loglevel notice # 日志文件 logfile "" # 数据库个数 databases 16 always-show-logo yes ################################ SNAPSHOTTING ################################ # 快照保存 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ ################################# REPLICATION ################################# # 复制集配置 replica-serve-stale-data yes replica-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no ...
在后续章节将详细介绍 redis.conf 的配置文件,另外,redis 中你可以通过 config 命令查看或设置配置项。
Redis Config Get 命令基本语法如下:
redis 127.0.0.1:6379> CONFIG GET parameter
Redis Config Get 命令用于获取 redis 服务的配置参数。
在 Redis 2.4 版本中, 有部分参数没有办法用 CONFIG GET 访问,但是在最新的 Redis 2.6 版本中,所有配置参数都已经可以用 CONFIG GET 访问了。
CONFIG GET 对应的是修改运行时参数的命令 CONFIG SET。
CONFIG GET 命令只接受一个 glob 风格的正则参数,所有配置参数都采用key-value的形式。 例如:
redis> config get *max-*-entries* 1) "hash-max-zipmap-entries" 2) "512" 3) "list-max-ziplist-entries" 4) "512" 5) "set-max-intset-entries" 6) "512"
通过 redis-cli 提示符下输入 CONFIG GET * 可以查看 Redis 所有支持的参数。
注意
所有支持的参数都与 redis.conf 里面的一样,除了如下的重要差异:
10kb 、 2gb 这些在配置文件中所使用的储存单位缩写,不可以用在 CONFIG 命令中。CONFIG SET 的值只能通过数字值显式地设定。像 CONFIG SET xxx 1k 这样的命令是错误的,正确的格式是 CONFIG SET xxx 1000 。
save 选项在 redis.conf 中是用多行文字储存的,但在 CONFIG GET 命令中,它只打印一行文字。
例如:redis.conf 里面的有如下配置。
save 900 1 save 300 10
它的意思是:如果 900 秒内有一个数据发生变化,或者 300 秒内有 10 个数据发生变化则执行 SAVE。那么使用 CONFIG GET 查看时将会看到 “900 1 300 10“,例如:
127.0.0.1:6379> config get save 1) "save" 2) "900 1 300 10 60 10000"
Redis Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。
你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。
Redis Config Set 命令基本语法如下:
redis 127.0.0.1:6379> CONFIG Set parameter value
注意:当执行 CONFIG Set 命令设置成功时返回 OK,否则返回一个错误。
示例:
redis 127.0.0.1:6379> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "1024" redis 127.0.0.1:6379> CONFIG SET slowlog-max-len 10086 OK redis 127.0.0.1:6379> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "10086"
下面列出了 Redis 配置相关的其他命令。
该命令对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写。CONFIG SET 命令可以对服务器的当前配置进行修改,而修改后的配置可能和 redis.conf 文件中所描述的配置不一样, CONFIG REWRITE 的作用就是通过尽可能少的修改,将服务器当前所使用的配置记录到 redis.conf 文件中。语法如下:
CONFIG REWRITE
实例:
(1)修改 redis.conf 配置文件,如下:
# 其他配置信息... appendonly no
(2)重启 Redis 服务器,再执行以下命令:
# appendonly 处于关闭状态 127.0.0.1:6379> CONFIG GET appendonly 1) "appendonly" 2) "no" # 打开 appendonly 127.0.0.1:6379> CONFIG SET appendonly yes OK 127.0.0.1:6379> CONFIG GET appendonly 1) "appendonly" 2) "yes" # 将 appendonly 的修改写入到 redis.conf 中 127.0.0.1:6379> CONFIG REWRITE OK
(3)重写后的 redis.conf 文件中的 appendonly 选项将被改写,如下:
# 其他配置信息... appendonly yes
注意:该命令返回一个状态值;如果配置重写成功,则返回 OK;失败,则返回一个错误。
该命令用来重置 INFO 命令中的某些统计数据。其中,统计数据包括:
Keyspace hits (键空间命中次数)
Keyspace misses (键空间不命中次数)
Number of commands processed (执行命令的次数)
Number of connections received (连接服务器的次数)
Number of expired keys (过期key的数量)
Number of rejected connections (被拒绝的连接数量)
Latest fork(2) time (最后执行 fork(2) 的时间)
The aof_delayed_fsync counter (aof_delayed_fsync 计数器的值)
语法如下:
CONFIG RESETSTAT
实例:
127.0.0.1:6379> config resetstat OK