一、简介
Hash 是一个键值对(key - value)集合,其中 value 的形式如: value=[{field1,value1},...{fieldN,valueN}]。Hash 特别适合用于存储对象。
二、内部实现
Hash 类型的底层数据结构是由压缩列表或哈希表实现的,Redis 7.0 中,压缩列表数据结构已经废弃了,交由 listpack 数据结构来实现了。
三、使用场景
1.缓存对象
Hash类型的结构和对象类型的结构类型,一般用String+Json存储对象信息,对于频繁变动的对象用Hash类型保存对象信息。
2.购物车
以用户 id 为 key,商品 id 为 field,商品数量为 value,恰好构成了购物车的3个要素
涉及的命令如下:
1.添加商品:HSET cart:{用户id} {商品id} 1
2.添加数量:HINCRBY cart:{用户id} {商品id} 1
3.商品总数:HLEN cart:{用户id}
4.删除商品:HDEL cart:{用户id} {商品id}
5.获取购物车所有商品:HGETALL cart:{用户id}