2.7 Redis数据类型_Hash 🎉
...大约 2 分钟
2.7 Redis数据类型_Hash 🎉
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 命令。
使用场景
- 购物车
- 存储对象
Powered by Waline v2.15.7