Redis 用Hash实现简单购物车

文章讨论了如何使用Redis的哈希存储结构来管理用户的购物车,包括商品编号、购买数量的存储与操作。虽然Redis简化了数据存储,但未直接加速购物车呈现,需结合数据库查询商品详细信息。文中提到将商品信息分离存储以避免重复加载,利用hsetnx保证唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值