介绍
Redis是一个开源的内存中键值数据存储。Redis有几个命令,可让您即时更改Redis服务器的配置设置。本教程将介绍其中一些命令,并说明如何使这些配置更改永久生效。
如何使用本指南
本指南以备有完整示例的备忘单形式编写。我们鼓励您跳至与您要完成的任务相关的任何部分。
本指南中显示的命令已在运行Redis版本4.0.9的Ubuntu 18.04服务器上进行了测试。要设置类似的环境,您可以按照我们的指南如何在Ubuntu 18.04上安装和保护Redis的步骤1进行操作。我们将通过使用Redis命令行界面运行它们来演示这些命令的行为。请注意,如果您使用其他Redis界面(例如Redli),则某些命令的确切输出可能会有所不同。redis-cli
请注意,托管Redis数据库通常不允许用户更改配置文件。如果您正在使用DigitalOcean的托管数据库,则本指南中概述的命令将导致错误。
更改Redis的配置
本节中概述的命令将仅在当前会话期间或直到您运行之前更改Redis服务器的行为,config rewrite
这将使它们永久化。您可以通过使用首选文本编辑器打开和编辑Redis配置文件来直接更改它。例如,您可以nano
这样做:
sudo nano /etc/redis/redis.conf
警告:该config set
命令被认为是危险的。通过更改Redis配置文件,有可能导致Redis服务器以意外或不良方式运行。我们建议仅在config set
测试命令的行为或绝对确定要对Redis配置进行更改时才运行该命令。
config set
允许您在运行时重新配置Redis,而无需重新启动服务。它使用以下语法:
config set parameter value
例如,如果要更改运行save
命令后Redis将产生的数据库转储文件的名称,则可以运行如下命令:
config set "dbfilename" "new_file.rdb"
如果配置更改有效,则命令将返回OK
。否则将返回错误。
**注意:**并非redis.conf
文件中的每个参数都可以通过config set
操作来更改。例如,您不能更改requirepass
参数定义的身份验证密码。
永久进行配置更改
config set
不会永久更改Redis实例的配置文件;它仅在运行时更改Redis的行为。要redis.conf
在运行config-set
命令后进行编辑并使当前会话的配置永久化,请运行config rewrite
:
config rewrite
此命令将尽最大努力保留原始redis.conf
文件的注释和整体结构,而只需进行最小的更改即可匹配服务器当前使用的设置。
就像config set
,如果重写成功config rewrite
将返回OK
。
检查Redis的配置
要读取Redis服务器的当前配置参数,请运行config get
命令。config get
只有一个参数,其可以是在使用的参数中的任一个完全匹配redis.conf
或水珠图案。例如:
config get repl*
根据您的Redis配置,此命令可能返回:
Output 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 set
通过运行返回所有支持的配置参数config get *
。
结论
本指南详细介绍了redis-cli
用于动态更改Redis服务器的配置文件的命令。如果您想在本指南中概述其他相关的命令,参数或过程,请在下面的评论中提出疑问或提出建议。
有关Redis命令的更多信息,请参阅关于如何管理Redis数据库的系列教程。