当前位置:   article > 正文

Redis五大数据类型的应用场景_redis里面购物车一般用于数据类型存?

redis里面购物车一般用于数据类型存?

Redis五大数据类型的应用场景

快速入门Redis的文章,传送地址:Redis基础知识

1. String类型

单值缓存:使用 set、get 指令完成对数据的缓存

对象缓存:value部分使用JSON格式数据进行存储

计数器:使用 incr、decr 指令完成对数据的计数,比如朋友圈点赞数

2. Hash类型

2.1 购物车

使用Hash类型可以完成购物车的添加、浏览、更改数量、删除、清空等操作,如下图所示:

image-20210606172729844
  • 以客户id作为key,每位客户创建一个hash存储结构存储对应的购物车信息

  • 创建两个field

    • field1用于保存购买数量,格式:商品编号:数量nums
    • field2用于保存购物车中显示的信息,格式:商品编号:JSON格式的商品信息
    image-20210606174023655
  • 添加商品:追加全新的field与value

  • 浏览:遍历hash

  • 更改数量:自增自减修改field1的value值

  • 删除商品:删除两个field

  • 清空:删除key

改进方案:

上述设计中,如果不同用户购买同一件商品,仅数量不同,那么就会导致描述信息的大量重复,此时应该考虑将商品的描述信息设置成独立的Hash结构,用户添加商品时如果这个商品存在于独立的Hash结构,那么就无需添加商品的描述信息。

为了保证独立存放商品信息的Hash结构的内容不重复,添加商品时使用 hsetnx 指令。

2.2 秒杀活动

某商家在双十一的活动是,有面值分别为30元、50元、100元的充值卡各有1000张需要售出。

使用Hash结构可完成此次秒杀活动,如下图所示:

image-20210606175335461
  • 以商家id作为key
  • 将参与抢购的商品id作为field
  • 将参与抢购的商品数量作为对应的value
  • 抢购时使用降值的方式控制产品数量
image-20210606175518869

注意:对于超卖问题,可以考虑使用分布式锁,详见 博客 / 文档

3. List类型

常用的场景是:

  • 微博关注列表按照好友的关注顺序显示,微信消息的显示列表按照消息到达的先后顺序进行显示

    • 可以使用List的模型,完成上述两个功能,新来的数据在最上面(栈顶)显示
    • 模型用来解决最新消息问题
  • 企业中多台服务器的日志打印顺序

    • 可以使用List的队列模型,多个服务器按照日志的输出顺序同时记录到队列中
    • 队列模型用来解决多路信息归并的问题

4. Set类型

  • Set类型主要用于数据不能重复,以及需要获取多个数据源交集、并集的场景
  • 比如点赞用户、所有粉丝可以存储在Set中,这些用户不能重复
  • 还可以使用Set实现共同关注、共同好友等交集、并集功能

5. Zset类型

  • Zset类型通常用来实现排行榜等功能
  • 可以按照票数、分数排序,并得到某一数据的排名
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/798658
推荐阅读
相关标签
  

闽ICP备14008679号