基于redis购物车

本文介绍了如何基于Redis设计和实现购物车功能,利用Redis的Hash结构存储用户购物车数据,详细阐述了Key的设计和Value的Json格式。还讨论了会员登录、商品验证、购物车操作逻辑,包括商品的添加、删除,以及使用JWT实现用户认证,自定义参数解析器简化控制层方法的会员信息获取。整个方案旨在提高购物车操作的性能和灵活性。
摘要由CSDN通过智能技术生成

基于redis的购物车流程(不是很详细)

我在之前的项目中,做过购物车的功能,当时从表设计到最后用postman进行接口的测试,都是我负责做的。

考虑到用户操作购物车的性能问题,我当时做的是基于redis的购物车,将购物车的所有数据都存储到redis中。

当时用了redis中的hash结构来存储所有用户购物车的数据,咱们都知道在使用hash的时候,涉及到key,field,value这三个方面的参数信息,key这块我用了 CartInfo/CartMap/CartData 这个固定的字符串来表示,在field这块为了能够表示不同用户的购物车,我用来 member:会员id:cart/member:会员id/cart:会员id 来表示,在value这块我是把会员对应的整个购物车的信息都转换为Json格式进行了存储。整个购物车对应的数据结构是这个样子的。

购物车中包含 商品总件数,总价格,以及 购物车的商品项列表,在商品项中包含 商品id,商品名,商品单价,商品件数,商品图片,商品小计 等,这里面特别要注意的就是关于价格这块在java中要用bigDecimal这个数据类型,这样可以防止精度丢失。

只有会员登录后才能操作购物车,比如添加商品,删除商品等。关于登录这块,我采用的是基于token的用户登录,类似于自己写了一个jwt【java web token】。

这样用起来更加的灵活方便,在自定义的拦截器中,当通过了层层关卡的验证后,将会员信息存入到request中,这样在其他的控制层方法中就可以通过request来获取当前登录的用户信息。为了方便在每个控制层方法中获取会员信息,我采用了 spring中自定义的参数解析器,这样就避免了在每个控制层方法中都使用requst.getA

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值