Hash 类型简介
Redis 哈希(Hash)是键值对的集合,字段与值均支持字符串或数字类型,非常适合建模用户信息、配置项等对象数据。其底层通过压缩列表或哈希表优化存储,空间利用率高且查询效率高,支持单字段或多字段的增删改查、存在性判断以及值的自增自减等原子操作。
需要注意的是,Redis 本身基于哈希结构存储,当我们在 Redis 中使用 Hash 类型时,实际上是'哈希的哈希'。外层 Key 对应一个 Hash 对象,内层 Field 替代了原本的 Key 位置,避免冲突。
常用指令详解
1. hset
用于创建或更新哈希中的字段值。
hset key field value
一个 Key 可以包含多个 Field,每个 Field 对应唯一的 Value。若 Field 已存在,则覆盖原值;若不存在,则新建。

当我们对同一个 Field 再次使用 hset 时,会更新其对应的 Value,同时一个 Key 也可以对应多个不同的 Field。

2. hget
根据 Key 和 Field 获取对应的 Value。
hget key field
此命令仅支持单次获取单个值,不支持批量读取。如果需要一次性访问多个 Value,后续会有特定的指令处理。

3. hdel
删除指定的 Field 及其对应的 Value。
hdel key field
删除操作仅针对 Field,不会直接删除整个 Key(除非该 Key 下无其他 Field)。例如删除 f2 后,访问 f1 依然成功。

4. hkeys
返回指定 Key 下的所有 Field 名称。
hkeys key
注意: hkeys 不支持通配符匹配多个 Key,只能针对具体键名操作。例如 hkeys * 会返回空数组而非匹配所有哈希键,因为 * 在此处不是通配符用法。











