(书)如何管理redis数据库-13.如何从命令行更改Redis的配置
介绍
Redis是一个开源的内存中键值数据存储。Redis有几个命令,可让您即时更改Redis服务器的配置设置。本教程将介绍其中一些命令,并说明如何使这些配置更改永久生效。
如何使用本指南
本指南以备有完整示例的备忘单形式编写。我们鼓励您跳至与您要完成的任务相关的任何部分。
本指南中显示的命令已在运行Redis版本的Ubuntu 18.04服务器上进行了测试 4.0.9。要设置类似的环境,您可以按照我们的指南如何在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服务器的配置文件的命令。如果您想在本指南中概述其他相关的命令,参数或过程,请在下面的评论中提出疑问或提出建议。