引言

Redis 是一个开源的、内存中的键值数据存储。 在 Redis,字符串是你可以创建和管理的最基本的值类型。 本教程概述了如何创建和检索字符串,以及如何操作字符串键保存的值。

如何使用本指南

本指南是作为包含自包含示例的备忘单编写的。 我们鼓励您跳转到任何与您正在尝试完成的任务相关的部分。

本指南中显示的命令是在运行 Redis 4.0.9版本的 Ubuntu 18.04服务器上测试的。 要建立一个类似的环境,你可以按照我们关于如何在 Ubuntu 18.04上安装和保护 Redis 的指南的第一步。 我们将通过使用 Redis-cli (Redis 命令行界面)运行这些命令来演示它们的行为。 请注意,如果您使用的是不同的 Redis 接口ーー例如 Redli ーー某些命令的确切输出可能会有所不同。

或者,您可以提供一个托管 Redis 数据库实例来测试这些命令,但是请注意,根据您的数据库提供程序所允许的控制级别,本指南中的某些命令可能不能像描述的那样工作。 要提供一个数字数据库管理数据库,请遵循我们的管理数据库产品文档。 然后,必须安装 Redli 或设置 TLS 通道,以便通过 TLS 连接到托管数据库。

创建和管理字符串

包含字符串的键只能包含一个值; 您不能在单个键中存储多个字符串。 然而,Redis 的字符串是二进制安全的,这意味着 Redis 字符串可以保存任何类型的数据,从字母数字字符到 JPEG 图像。 唯一的限制是字符串长度必须是512 MB 或更少。

若要创建字符串,请使用 set 命令。 例如,下面的 set 命令创建一个名为 welcome1的键,其中包含字符串“ Howdy” :

  • set key_Welcome1 "Howdy"
Output
OK

要在一个命令中设置多个字符串,请使用 mset:

  • mset key_Welcome2 "there" key_Welcome3 "partners,"

你也可以使用 append 命令来创建字符串:

  • append key_Welcome4 "welcome to Texas"

如果字符串创建成功,append 将输出一个整数,等于字符串包含的字符数:

Output
(integer) 16

注意,append 还可以用于更改字符串的内容。 有关此操作的详细信息,请参阅操作字符串一节。

检索字符串

要检索一个字符串,使用 get 命令:

  • get key_Welcome1
Output
"Howdy"

要使用一个命令检索多个字符串,请使用 mget:

  • mget key_Welcome1 key_Welcome2 key_Welcome3 key_Welcome4
Output
1) "Howdy" 2) "there" 3) "partners," 4) "welcome to Texas"

对于传递给 mget 的每个不包含字符串值或根本不存在的键,该命令将返回 nil。

操纵字符串

如果一个字符串是由一个整数组成的,你可以运行 incr 命令将其增加1:

  • set key_1 3
  • incr key_1
Output
(integer) 4

类似地,您可以使用 incrby 命令将数字字符串的值增加一个特定的增量:

  • incrby key_1 16
Output
(integer) 20

Decr 和 decrby 命令以相同的方式工作,但它们减少了存储在数字字符串中的整数:

  • decr key_1
Output
(integer) 19
  • decrby key_1 16
Output
(integer) 3

如果一个字母字符串已经存在,那么 append 将把值追加到现有值的末尾,并返回字符串的新长度。 为了说明这一点,下面的命令将“ ,y’ all”附加到键 welcome4所持有的字符串,所以现在这个字符串将读取“ welcome To Texas,y’ all” :

  • append key_Welcome4 ", y'all"
Output
(integer) 15

还可以将整数附加到包含数值的字符串。 下面的示例将45附加到3,即键1中保存的整数,因此它将保存345。 在这种情况下,append 也会返回字符串的新长度,而不是它的新值:

  • append key_1 45
Output
(integer) 3

因为此键仍然只保存数值,所以可以对其执行 incr 和 decr 操作。 您还可以向整数字符串追加字母字符,但如果这样做,那么对字符串运行 incr 和 decr 将产生错误,因为字符串值不再是整数。

总结

本指南详细介绍了在 Redis 用于创建和管理字符串的许多命令。 如果还有其他相关的命令、参数或者程序你想在本指南中看到,请在下面的评论中询问或者提出建议。

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