Redis 配置

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 命令查看或设置配置项。

获取配置 (config get)

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"

设置配置(config set)

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 配置相关的其他命令。

CONFIG REWRITE命令

该命令对启动 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;失败,则返回一个错误。

CONFIG RESETSTAT命令

该命令用来重置 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
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号