系列教程导航

  1. 如何在 ubuntu18.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 中,字符串 是您可以创建和管理的最基本值类型。本教程概述了如何创建、检索字符串,以及如何操作字符串键所保存的值。

如何使用本指南

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

本指南中显示的命令已在运行 Redis 4.0.9Ubuntu 18.04 服务器上进行了测试。要设置类似的环境,您可以按照指南 如何在 Ubuntu 18.04 上安装和保护 Redis步骤 1进行操作。我们将通过使用 Redis 命令行界面 redis-cli 运行它们来演示这些命令的行为。请注意,如果您使用其他 Redis 界面(例如 Redli),则某些命令的确切输出可能会有所不同。

另外,您可以使用托管的 Redis 数据库实例来测试这些命令。但请注意,根据数据库提供者所允许的控制级别,本指南中的某些命令可能无法按所述方式工作。要配置 DigitalOcean 托管数据库,请遵循 托管数据库产品文档。然后,您必须 安装 Redli 设置 TLS 隧道 才能通过 TLS 连接到托管数据库。

创建和管理字符串

包含字符串的键只能包含一个值,您无法在一个键中存储多个字符串。但是,Redis 中的字符串是二进制安全的(binary-safe),这意味着 Redis 字符串可以保存任何类型的数据,从字母数字字符到 JPEG 图像均可。唯一的限制是字符串长度不能超过 512 MB。

要创建一个字符串,请使用 set 命令。例如,以下 set 命令创建一个名为 key_Welcome1 的键,该键包含字符串 "Howdy"

set key_Welcome1 "Howdy"
OK

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

mset key_Welcome2 "there" key_Welcome3 "partners,"

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

append key_Welcome4 "welcome to Texas"

若字符串创建成功,append 将输出一个整数,表示该字符串包含的字符数:

16

注意,append 也可以用来更改字符串的内容。有关详细信息,请参见下文 操作字符串 部分。

检索字符串

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

get key_Welcome1
Howdy

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

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

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

操作字符串

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

set key_1 3
incr key_1
4

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

incrby key_1 16
20

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

decr key_1
19
decrby key_1 16
3

若字符串键已存在,append 会将值附加到现有内容的末尾,并返回新字符串的长度。为了说明这一点,以下命令将 ", y'all" 附加到键 key_Welcome4 所保存的字符串上,因此现在该字符串将显示为 "welcome to Texas, y'all"

append key_Welcome4 ", y'all"
15

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

append key_1 45
3

(注:此处原文输出为 3,可能是指长度变化或特定上下文,实际 345 长度为 3。)

由于此键仍仅保留数字值,因此可以对其执行 incrdecr 操作。您可以在整数字符串后附加字母字符,但如果这样做,则在字符串上运行 incrdecr 将产生错误,因为字符串值不再是整数。

结论

本指南详细介绍了许多用于在 Redis 中创建和管理字符串的命令。如果您想在本指南中概述其他相关的命令、参数或过程,请在下面的评论中提出疑问或提出建议。

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

说明

版本时效性说明:本文内容基于 Redis 4.0.9Ubuntu 18.04 环境测试。虽然字符串基础命令在后续版本中保持高度兼容,但部分托管数据库服务或新版本 Redis 可能在安全配置(如 TLS 连接)及默认权限上有所调整,请根据实际情况参考官方文档。