如何在 Redis 中管理字符串

介绍

Redis是一个开源的内存密钥值数据库. 在Redis中,strings是您可以创建和管理的最基本的值类型。

如何使用此指南

这个指南是写成一个骗局的表,包含自含的示例,我们鼓励你跳到任何与你试图完成的任务相关的部分。

在本指南中显示的命令在运行 Redis 版本 6.0.1 版本的 Ubuntu 22.04 服务器上进行了测试。 要设置类似的环境,您可以遵循我们指南中的 Step 1How To Install and Secure Redis on Ubuntu 22.04 上进行测试。 我们将通过使用 Redis 命令行接口的 redis-cli 来演示这些命令的行为。 如果您使用不同的 Redis 接口 - 例如 - 某些命令的准确输出可能会有所不同。

或者,您可以提供一个管理的 Redis 数据库实例来测试这些命令,但请注意,根据数据库提供商允许的控制级别,本指南中的一些命令可能无法按所述方式工作。 要提供 DigitalOcean 管理数据库,请遵循我们的 管理数据库产品文档

创建和管理字符串

持有字符串的键只能持有一个值. 您不能在单个字符串中存储多个字符串. 然而,Redis中的字符串是二进制安全,这意味着Redis字符串可以持有任何类型的数据,从字符串到JPEG图像。

例如,下面的设置命令会创建一个名为key_Welcome1的密钥,其中包含字符串Howdy:

1set key_Welcome1 "Howdy"
1[secondary_label Output]
2OK

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

1mset key_Welcome2 "there" key_Welcome3 "partners,"

您还可以使用附加命令创建字符串:

1append key_Welcome4 "welcome to Texas"

如果字符串被成功创建,则附加将输出相当于字符串包含多少个整数:

1[secondary_label Output]
2(integer) 16

请注意,附件也可以用来更改字符串的内容。

回收 Strings

要获取一个字符串,请使用get命令:

1get key_Welcome1
1[secondary_label Output]
2"Howdy"

若要使用一个命令获取多个字符串,请使用mget:

1mget key_Welcome1 key_Welcome2 key_Welcome3 key_Welcome4
1[secondary_label Output]
21) "Howdy"
32) "there"
43) "partners,"
54) "welcome to Texas"

对于每一个没有字符串值或根本不存在的mget键,命令将返回null

操纵线条

如果一个字符串由一个整数组成,则可以运行incr命令以增加一个:

1set key_1 3
2incr key_1
1[secondary_label Output]
2(integer) 4

同样,您可以使用incrby命令将数字字符串的值增加为特定增量:

1incrby key_1 16
1[secondary_label Output]
2(integer) 20

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

1decr key_1
1[secondary_label Output]
2(integer) 19
1decrby key_1 16
1[secondary_label Output]
2(integer) 3

如果已经存在一个字母字符串,则会将值附加到现有值的末尾,并返回新长度的字符串。

1append key_Welcome4 ", y'all"
1[secondary_label Output]
2(integer) 23

您还可以将整数附加到持有数字值的字符串中。以下示例将45附加到3,即在key_1中持有的整数,因此它将持有345

1append key_1 45
1[secondary_label Output]
2(integer) 3

由于这个密钥仍然只有一个数字值,你可以执行incrdecr操作,你也可以将字母字符附加到整数字符串,但如果你这样做,那么在字符串上运行incrdecr会产生错误,因为字符串值不再是整数。

结论

本指南详细介绍了一些用于创建和管理 Redis 中的字符串的命令. 如果在本指南中您想要了解的其他相关命令、论点或程序,请在评论中询问或提出建议。

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

Published At
Categories with 技术
comments powered by Disqus