【redis教程】3、redis支持的五种数据类型之Hash

redis支持的hash类型:

  • 新的存储需求,对一系列存储的数据进行编组,方便管理,典型应用存储对象信息
  • 需要的存储结构,一个存储空间保存多个键值对数据

hash类型数据的基本操作

添加数据
hset key field value
在这里插入图片描述
获取数据
hget key field
hgetall
在这里插入图片描述
删除数据
hdel key field
在这里插入图片描述
添加多个
hmset key f1 v1 f2 v2

获取多个
hmget key f1 f2

获取字段数量
hlen key

hash类型数据的扩展操作

  • 获取哈希表中所有的字段名或字段值
    hkeys key
    hvals key
  • 增减
    hincrby key field increment
    博客数量加1
    在这里插入图片描述

hash类型数据操作的注意事项

  • hash类型下的value只能是字符串,不存在hash嵌套hash的现象。
  • 每个hash可以存储232 -1个键值对
  • hgetall可获取全部属性,数据过多效率会很低。

hash类型应用场景

实现一个购物车

  • key,用户id作为key,每一个用户创建一个hash存储结构来存储购物车信息
  • field,商品id作为field
  • value,购买的数量作为value
  • 添加购物车,追加全新的field和value
  • 删除商品,删除field
  • 清空, 删除key

id为001的user购买了g1,数量为3个,购买了g2,数量为5个:
在这里插入图片描述
把购物车里的g1商品的数量设为1,并且删除g2商品。
在这里插入图片描述
在这里插入图片描述
这里我们的购物车里只有购买数量,没有商品的详细信息,还需要去商品数据库查询加载,redis在这里没有起到缓存的作用。怎么解决?我们可以把商品的信息专门建一个hsah来存储,存储商品就和购物车没有关系了。

实现一个抢购活动

  • key,商家id作为key
  • field,参与抢购的商品id作为field
  • value,商品的数量作为value
  • 使用hincrby控制数量

id为001的店铺,g1和g2商品参与抢购,数量分别是10和20:
在这里插入图片描述
此店铺的g1商品被抢走了1个:
在这里插入图片描述

发布了28 篇原创文章 · 获赞 1 · 访问量 1860

猜你喜欢

转载自blog.csdn.net/m0_46130323/article/details/104259955
今日推荐