如何使用命令行更改Redis的配置

引言

Redis是一个开源的、内存中的键值数据存储库。Redis有几个命令可以让您在运行时更改Redis服务器的配置设置。本教程将讨论其中一些命令,并解释如何使这些配置更改变得永久。

如何使用本指南

这个指南是以速查表的形式编写的,内含自包含的示例。我们鼓励您直接跳转到与您正在完成的任务相关的任何部分。

本指南中显示的命令是在运行Redis版本6.0.16的Ubuntu 22.04服务器上进行测试的。要设置类似的环境,您可以按照我们在如何在Ubuntu 22.04上安装和保护Redis的指南中的第一步进行操作。我们将使用Redis命令行界面redis-cli来演示这些命令的行为。如果您使用不同的Redis接口,例如Redli,某些命令的确切输出可能会有所不同。

或者,您可以提供一个托管的Redis数据库实例来测试这些命令,但根据您的数据库提供商允许的控制级别,本指南中的一些命令可能无法按照描述的方式正常工作。要提供Silicon Cloud托管数据库,请按照我们的托管数据库产品文档进行操作。然后,您必须安装Redli或设置一个TLS隧道以通过TLS连接到托管数据库。

警告:管理的Redis数据库通常不允许用户更改配置文件。如果您正在使用Silicon Cloud的托管数据库,本指南中介绍的命令会导致错误。

更改Redis的配置

本节中提供的命令只会在当前会话期间改变Redis服务器的行为,或者在运行`config rewrite`命令之前起作用,该命令会使这些更改变得永久有效。您也可以通过使用您喜欢的文本编辑器直接打开和编辑Redis配置文件来进行更改。例如,您可以使用nano来完成这个操作。

  1. sudo nano /etc/redis/redis.conf

 

Warning

警告:配置设置命令被认为是危险的。通过更改Redis配置文件,可能会导致Redis服务器以意外或不可取的方式运行。我们建议只在测试其行为时或确信想要更改Redis配置时才运行配置设置命令。
将此命令重命名为更不容易被意外执行的名称可能符合您的利益。

配置设置允许您在运行时重新配置Redis,而无需重新启动服务。它使用以下语法:

  1. config set parameter value

 

例如,如果你想要在运行保存命令后更改Redis生成的数据库转储文件的名称,你可以运行类似以下的命令:

  1. config set “dbfilename” “new_file.rdb”

 

如果配置更改是有效的,该命令将返回“OK”。否则,它将返回一个错误。

Note

备注:并非redis.conf文件中的每个参数都可以通过config set操作进行更改。例如,您无法更改由requirepass参数定义的身份验证密码。

使配置更改永久生效

配置集不会永久更改Redis实例的配置文件;它只会在运行时改变Redis的行为。要在运行config-set命令后编辑redis.conf并使当前会话的配置变为永久,运行config rewrite。

  1. config rewrite

 

这个命令的优先级是保留原始redis.conf文件的注释和整体结构,只对设置进行最小的更改以适应当前服务器使用的设置。

就像设置配置一样,如果重写成功,config rewrite 将返回OK。

检查Redis的配置

要读取Redis服务器的当前配置参数,请运行config get命令。config get需要一个参数,该参数可以是redis.conf中使用的参数的精确匹配,也可以是一个glob模式。例如:

  1. 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 get * 返回config set支持的所有配置参数。

结论

本指南详细介绍了在Redis服务器中更改配置文件时使用的redis-cli命令。如果您希望在本指南中了解其他相关命令、参数或步骤,请在评论中提问或提出建议。

有关Redis命令的更多信息,请查看我们关于如何管理Redis数据库的教程系列。

广告
将在 10 秒后关闭
bannerAds