数据类型Hash
原创2026/3/5大约 2 分钟

Hash是一个键值对的集合。Hash 是一个 String 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Hash存储结构优化
- 如果field数量较少,存储结构优化为类数组结构
- 如果field数量较多,存储结构使用HashMap结构
- hset
给user集合中的field赋值value。
hset user name lcl
hset user age 3
# 相当于 user:{name:lcl,age:3}提示
- 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
- 如果字段已经存在于哈希表中,旧值将被重写。
- hget
从key哈希中,取出field字段的值。
hget user name # lcl- hmset
批量设置哈希的字段及值。
hmset user1 name lcl age 15- hexists
如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0
判断指定key中是否存在field,
hexists user name # 1- hkeys
获取该哈希中所有的field。
hkeys key- hvals
获取该哈希中所有的value。
hvals key- hincrby
为哈希表key中的field字段的值加上增量increment。
hincrby user1 age 10 # age+10注意
- 增量也可以为负数,相当于对指定字段进行减法操作。
- 如果哈希表的 key 不存在,一个新的哈希表被创建并执行 hincrby 命令。
- 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
- 对一个储存字符串值的字段执行 hincrby 命令将造成一个错误。
- hdel
删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
hdel user age- hsetnx
给key哈希表中不存在的的字段赋值 。
hsetnx user age 10提示
- 如果哈希表不存在,一个新的哈希表被创建并进行 hsetnx 操作。
- 如果字段已经存在于哈希表中,操作无效。
- 如果 key 不存在,一个新哈希表被创建并执行 hsetnx 命令。
使用场景
- 购物车
- 存储对象
至此,本章节的学习就到此结束了,如有疑惑,可对接技术客服进行相关咨询。