Navicat 博客

Redis 哈希的使用 2023 年 9 月 15 日,由 Robert Gravelle 撰写

在 Redis 中,哈希(Hash)是一种将字符串类型的键映射为字段-值对的数据结构。因此,哈希(Hash)非常适用于表示基本对象和存储计数器分组数据等。这篇文章将介绍一些用于管理哈希(Hash)的主要命令,以及在 redis-cli 和 Navicat for Redis 中使用哈希(Hash)的方法。

创建和更新哈希(Hash)

在 Redis 中,键(key)就是哈希(Hash)的名称,而值(value)则表示字段名-字段值条目的列表。例如,我们可以将一个车辆对象进行如下描述:

vehicle make Toyota model Crown trim Platinum year 2023 color black

在处理哈希(Hash)时,我们使用的命令与处理字符串的命令类似,因为哈希字段值就是字符串。正如你所想的那样,命令 HSET 用于设置哈希字段的值。如果键不存在,则会生成一个存储哈希的新键。如果哈希中已经存在此字段,则它会被覆盖。

HSET key field value

对于每个命令 HSET,Redis 会返回一个整数,如下所示:

  • 返回 1 表示字段是哈希中的一个新的字段并设置字段值。
  • 返回 0 表示哈希中已存在此字段并更新字段值。

让我们来创建前面描述过的车辆的哈希:

HSET vehicle make "Toyota"   // 1
HSET vehicle model "Crown"   // 1
HSET vehicle trim "Platinum" // 1
HSET vehicle year 2015       // 1
HSET vehicle color "black"   // 1

现在,如果我们更新字段 year 的值为 2022,则命令HSET 返回 0:

HSET vehicle year 2022 // 0

在 Navicat 中创建哈希(Hash)

Navicat for Redis 中,可在内置编辑器中添加哈希的字段。点击字段右侧的省略号 […] 按钮来打开特定的编辑器,你可以在此编辑器中输入单个字段值:

vehicle_hash_in_navicat_editor (70K)

点击“应用”按钮来添加新的哈希或字段。

获取哈希(Hash)字段的值

我们可以通过使用命令 HGET 获取哈希(Hash)中与字段相关联的值:

HGET key field

例如,我们可以使用此命令去验证我们是否可获得 year 的值是 2022,而不是 2015:

HGET vehicle year // 2022

我们还可以使用命令 HGETALL 获取哈希(Hash)中的所有内容(字段和值):

HGETALL key

让我们试试:

HGETALL vehicle
/* 
Returns:

make
Toyota
model
Crown
trim
Platinum
year
2022
color
black
*/

当所提供的键的参数不存在时,命令 HGETALL 返回一个空的列表。

删除字段

命令 HDEL 从存储在键中的哈希(Hash)中移除指定的字段。在哈希中不存在的指定字段会被忽略。命令 HDEL 返回一个被从哈希中移除的字段的数量。如果键不存在,则视为空哈希,命令 HDEL 将返回 0。

HDEL key field [field ...]

让我们使用命令 HDEL 来删除 year 和 color 这两个字段:

HDEL vehicle year color // 2

在 Navicat 编辑器中,我们选中字段并在字段列表底部点击删除 [-] 按钮来移除一个字段:

delete_button_in_navicat_editor (25K)

结语

本文主要介绍了一些管理 Redis 哈希(Hash)的主要命令,以及在 redis-cli 和 Navicat for Redis 中使用哈希(Hash)的方法。

若想试用 Navicat for Redis ,你可点击 此处 下载它,可享 14 天免费试用完整版功能。

Navicat 文章
频道条目
分享
文章归档