当前位置:   article > 正文

高并发环境下频繁更改购物车中的商品数量的实现思路及部分代码实现(只对购物车中的商品数量做缓存)——redis做缓存mq将redis中修改的数据同步到数据库_高并发的购物车

高并发的购物车

电商、外卖、直播等平台基本上都有购物车的功能。
购物车的作用:
1.需要购物的商品的保存
2.购物车可以充当收藏
购物车都需要设置商品的上限

购物车需要接口
1.查询登录用户的购物车列表数据
2.商品详情页、商品列表页 可以加入购物车
3.购物车列表页 可以实现商品数量的变化:增加、减少

实现思路
1.直接操作数据库
用的比较多 如果数据量大或者并发量大的 就会对系统很大压力
加减直接操作数据库
2.使用Redis+Mysql
1.直接对购物车表做缓存
Redis 做购物车的缓存,后面的操作都操作Redis ,最终借助MQ实现Redis数据和Mysql数据的同步
Hash: key:micro:cart:uid 字段:商品的skuid 值:购物车详情信息 有效期:30分钟
只要Redis发送变化发送MQ消息,实现Mysql数据的同步
2.只对购物车中的商品数据做缓存
Hash: key:micro:cart:uid 字段:商品的skuid 值:数量
数量变化 发送MQ消息
购物车商品新增 操作Mysql 可以直接操作Redis
查询购物车列表的时候:先查询数据库,再查询Redis,最后更新商品数量

代码实现

  1. package com.lxm.productservice.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import org.springframework.amqp.rabbit.core.RabbitTemplate;
  4. import org.springframework.stereotype.Service;
  5. import javax.annotation.Resource;
  6. import java.util.Date;
  7. import java.util.List;
  8. import java.util.Map;
  9. /**
  10. * @Author LXM
  11. * @Date 2020/7/16 0016
  12. */
  13. @Service
  14. public class OmsCarItemServiceImpl implements OmsCarItemService {
  15. @Resource
  16. private OmsCarItemDao dao;
  17. @Resource
  18. private RedissionCore redissionCore;
  19. @Resource
  20. private RabbitTemplate rabbitTemplate;
  21. /**
  22. * 向购物车表中添加数据
  23. * @param token
  24. * @param dto
  25. * @return
  26. */
  27. @Override
  28. public
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/828757
推荐阅读
相关标签
  

闽ICP备14008679号