源地址:https://www.digitalocean.com/community/cheatsheets/how-to-change-redis-configuration
作者:Mark Drake
简介
Redis 是一个开源的、运行在内存中的键值数据库。 Redis 有几个命令可让您即时更改 Redis 服务器的配置设置。本教程将介绍其中一些命令,并解释如何使这些配置更改永久化。
如何使用这个教程
这个教程是以小抄(Cheat Sheet)的形式写的,有对应的例子。我们鼓励你直接跳转到和你要完成的任务相关的章节进行阅读。
这个教程中的命令在 Ubuntu 18.04 中的 Redis 4.0.9 版本完成测试。如果你需要建设一个同样的环境,可以参考我们的 如何在 Ubuntu 18.04 上安装并加固 Redis 中的 Step 1 来安装 Redis。我们将通过 Redis 命令行界面redis-cli
运行这些命令,来演示这些命令的行为。请注意,如果你使用不同的 Redis 工具--例如Redli —— 某些命令的实际输出可能有所不同。
请注意,代管的 Redis 数据库通常不允许用户更改配置文件。如果您使用 DigitalOcean 的代管数据库,本指南中使用的命令将导致错误。
修改 Redis 的配置
本节中概述的命令只会在当前会话期间改变 Redis 服务器的行为,或者直到您运行 config rewrite
这将使它们永久化。您可以通过使用默认文本编辑器打开和编辑 Redis 配置文件来直接更改这些配置。例如,您可以使用 nano
来执行此操作:
$ sudo nano /etc/redis/redis.conf
警告:
config set
命令是非常危险的。修改你的 Redis 配置文件可能会导致 Redis 服务器出现意外或以无法预期的行为来运行。建议你只在测试环境或明确知道自己需要修改配置时使用config set
命令。
出于安全考虑,你可以选择将这些命令重命名为不容易被意外运行的命令。
config set
允许您在运行时重新配置 Redis,而无需重新启动服务。它使用以下语法:
127.0.0.1:6379> config set parameter value
例如,如果您想更改 Redis 在运行 save
命令后将生成的数据库转储文件的名称,则可以运行如下命令:
127.0.0.1:6379> config set "dbfilename" "new_file.rdb"
如果配置更改有效,该命令将返回 OK
。否则会返回错误。
注意: 并非
redis.conf
文件中的每个参数都可以通过config set
操作进行更改。例如,您不能更改requirepass
参数定义的身份验证密码。
将配置修改持久化
config set
不会永久改变 Redis 实例的配置文件;它只会改变 Redis 在运行时的行为。要在运行 config-set
命令后编辑 redis.conf
并使当前会话的配置永久化,请运行 config rewrite
:
127.0.0.1:6379> config rewrite
此命令尽最大努力保留原始 redis.conf
文件的注释和整体结构,只需进行少量更改以匹配服务器当前使用的设置。
和 config set
一样,如果重写成功,config rewrite
会返回 OK
。
检查 Redis 的配置
要读取 Redis 服务器的当前配置参数,请运行 config get
命令。 config get
接受一个参数,它可以是 redis.conf
中使用的参数的完全匹配,也可以是 glob 模式 . 例如:
127.0.0.1:6379> config get repl*
根据您的 Redis 配置,此命令可能会返回:
输出
1) "repl-ping-slave-period"
2) "10"
3) "repl-timeout"
4) "60"
5) "repl-backlog-size"
6) "1048576"
7) "repl-backlog-ttl"
8) "3600"
9) "repl-diskless-sync-delay"
10) "5"
11) "repl-disable-tcp-nodelay"
12) "no"
13) "repl-diskless-sync"
14) "no"
您还可以通过运行 config get *
返回 config set
支持的所有配置参数。
总结
本指南详细介绍了用于动态更改 Redis 服务器配置文件的 redis-cli
命令。