如何从命令行更改 Redis 的配置

系列教程导航

  1. 如何在 Ubuntu 18.04 上安装和保护 Redis
  2. 如何连接到 Redis 数据库
  3. 如何管理 Redis 数据库和 Keys
  4. 如何在 Redis 中管理副本和客户端
  5. 如何在 Redis 中管理字符串
  6. 如何在 Redis 中管理 List
  7. 如何在 Redis 中管理 Hashes
  8. 如何在 Redis 中管理 Sets
  9. 如何在 Redis 中管理 Sorted Sets
  10. 如何在 Redis 中运行事务
  11. 如何使 Redis 中的 Key 失效
  12. 如何解决 Redis 中的故障
  13. 如何从命令行更改 Redis 的配置
  14. Redis 数据类型简介

介绍

Redis 是一个开源的内存中键值数据存储系统。Redis 提供了一些命令,允许您即时更改服务器的配置设置。本教程将介绍其中一些命令,并说明如何使这些配置更改永久生效。

如何使用本指南

本指南采用备忘单形式编写,包含完整示例。我们鼓励您跳至与您要完成的任务相关的任何部分。

本指南中显示的命令已在运行 Redis 4.0.9Ubuntu 18.04 服务器上进行了测试。要设置类似的环境,您可以按照我们的指南 如何在 Ubuntu 18.04 上安装和保护 Redis步骤 1 进行操作。我们将通过使用 Redis 命令行界面(redis-cli)运行它们来演示这些命令的行为。

注意: 如果您使用其他 Redis 界面(例如 Redli),则某些命令的确切输出可能会有所不同。

注意: 托管 Redis 数据库通常不允许用户更改配置文件。如果您正在使用 DigitalOcean 的托管数据库,则本指南中概述的命令将导致错误。

更改 Redis 的配置

本节中概述的命令将仅在当前会话期间有效,或者直到您运行 config rewrite 命令使它们永久化之前生效。您也可以直接使用首选文本编辑器打开和编辑 Redis 配置文件来更改它。例如,可以使用 nano

sudo nano /etc/redis/redis.conf

警告: config set 命令被认为是危险的。通过更改 Redis 配置文件,有可能导致 Redis 服务器以意外或不良方式运行。我们建议仅在测试命令的行为或绝对确定要对 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 的行为。要在运行 config set 命令后编辑 redis.conf 并使当前会话的配置永久化,请运行 config rewrite

config rewrite

此命令将尽最大努力保留原始 redis.conf 文件的注释和整体结构,而只需进行最小的更改即可匹配服务器当前使用的设置。

就像 config set 一样,如果重写成功,config rewrite 将返回 OK

检查 Redis 的配置

要读取 Redis 服务器的当前配置参数,请运行 config get 命令。config get 只有一个参数,其可以是在 redis.conf 中使用的参数中的任一个完全匹配,或 Glob 模式)(通配符)。例如:

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

结论

本指南详细介绍了 redis-cli 用于动态更改 Redis 服务器配置文件的命令。如果您想在本指南中概述其他相关的命令、参数或过程,请在下面的评论中提出疑问或提出建议。

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


说明: 本文内容基于 Redis 4.0.9 版本及 Ubuntu 18.04 环境编写。较新版本的 Redis 可能在命令输出或配置参数上有所差异,请以官方文档为准。