Redis 用Hash实现简单购物车

发布时间 2023-11-07 17:12:16作者: 风筝上的猫

​先看 Hash 存储结构:

 

简单画一个购物车

问题引入:

不同的用户的购物车是各用各的;

一个购物车有多个商品;

一个商品有购买数量;

得出:

用户id 作为 key ;

用户所买商品的编号 作为 field ;

对应购买数量 作为 value ;

file 和 value 作为 key 对应的 hash;

操作能否实现:

value 可以拿到做增减,可以设置固定值

file 可以删除,可以全选

hash 可以计算总量,清空,浏览

 

redis命令简单实现一下

但是!当期设计并没有加速购物车的呈现!

当前仅仅是将数据存储到了redis中,并没有起到加速的作用,商品信息还需要二次查询数据库

  • 每条购物车中的商品记录保存成两条field
  • field1专用于保存购买数量
    • 命名格式:商品id:nums
    • 保存数据:数值
  • field2专用于保存购物车中显示的信息,包含文字描述,图片地址,所属商家信息等
    • 命名格式:商品id:info
    • 保存数据: json

当多个人同时买同一个商品,那么商品信息info就会重复加载,所以可以将商品信息(即上边的 file2 单拎出来存储)

使用 hsetnx key file value 命令可以让一种商品只加载一次,有这个信息就不能set,没有才可以set