码迷,mamicode.com
首页 > 其他好文 > 详细

Redis缓存实例2:缓存购物车数据

时间:2020-06-19 00:50:05      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:put   ima   mic   mon   over   use   image   res   gets   

 

思路:

技术图片

 

 代码:

  @Autowired
    private RedisTemplate redisTemplate;

    @Override
    public void addCart(String skuId, Integer num, String username) {

        /**
         * 1)查询redis中的数据
         * 2)如果redis中已经有了,则追加数量,重新计算金额
         * 3)如果没有,将商品添加到缓存
         */
        //redisTemplate.boundHashOps新增元素到指定键中
        OrderItem orderItem = (OrderItem) redisTemplate.boundHashOps(CART + username).get(skuId);
        if (orderItem != null) {
            //存在,刷新购物车
            orderItem.setNum(orderItem.getNum() + num);
            //如果数量<=0,应该移除该商品
            if (orderItem.getNum()<= 0){
                redisTemplate.boundHashOps(CART + username).delete(skuId);
                return;
            }
            orderItem.setMoney(orderItem.getNum() * orderItem.getPayMoney());
            orderItem.setPayMoney(orderItem.getNum() * orderItem.getPayMoney());
        } else {
            //不存在,新增购物车
            Result<Sku> skuResult = skuFeign.findById(skuId);
            Sku sku = skuResult.getData();
            //getData()
            Spu spu = spuFeign.findSpuById(sku.getSpuId()).getData();
            //将SKU转换成OrderItem
            orderItem = this.sku2OrderItem(sku, spu, num);
        }
        //存入redis
        redisTemplate.boundHashOps(CART + username).put(skuId, orderItem);
    }

  

Redis缓存实例2:缓存购物车数据

标签:put   ima   mic   mon   over   use   image   res   gets   

原文地址:https://www.cnblogs.com/aaaazzzz/p/13160833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!