在 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 中,可在内置编辑器中添加哈希的字段。点击字段右侧的省略号 […] 按钮来打开特定的编辑器,你可以在此编辑器中输入单个字段值:
点击“应用”按钮来添加新的哈希或字段。
获取哈希(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 编辑器中,我们选中字段并在字段列表底部点击删除 [-] 按钮来移除一个字段:
结语
本文主要介绍了一些管理 Redis 哈希(Hash)的主要命令,以及在 redis-cli 和 Navicat for Redis 中使用哈希(Hash)的方法。
若想试用 Navicat for Redis ,你可点击 此处 下载它,可享 14 天免费试用完整版功能。