3.Redis实战—商铺信息缓存

商户查询缓存 :

img


逻辑实现 :

  1. 从缓存中查询商铺信息
    1. 判断是否有缓存
      1. 有缓存
        1. 直接返回商铺信息 , 转为list格式
      2. 没有缓存 , 根据id从数据库中查询数据
        1. 判断是否有这个商铺
          1. 没有
            1. 直接返回错误信息
            1. 将数据保存到Redis中 , 并返回数据

代码实现 :

@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Override
    public List<ShopType> queryShopTypeList() {
        // TODO 1.从缓存中查询商铺信息
        String lockShop = stringRedisTemplate.opsForValue().get(LOCK_SHOP_KEY);
        //  TODO 2.判断不为空 , 就直接返回 , 转为list格式
        if (StrUtil.isNotBlank(lockShop)) {
            List<ShopType> list = JSONUtil.toList(lockShop, ShopType.class);
            return list;
        }
        // 3.为空 , 从数据库中查询
        List<ShopType> sort = query().orderByAsc("sort").list();
        // 判断查询数据是否为空
        if (ArrayUtil.isEmpty(sort)){
            return null;
        }
        // TODO 4.将查询出来的数据添加到Redis缓存 , 转为字符串
        stringRedisTemplate.opsForValue().set(LOCK_SHOP_KEY,JSONUtil.toJsonStr(sort),LOCK_SHOP_TTL, TimeUnit.DAYS);
        // TODO 5.将数据返回
        return sort;
    }
}

.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值