欢迎光临散文网 会员登陆 & 注册

黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式

2023-08-06 12:21 作者:晚枫林行  | 我要投稿

P37作业:基于value为String实现的(业务逻辑都放在了Service中),仅供参考

@Service

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

  @Resource

  private StringRedisTemplate stringRedisTemplate;


  @Override

  public Result queryShopType() {


    // 1.从redis查询商铺

    String key = "cache:shop_type";

    String shopTypeJson = stringRedisTemplate.opsForValue().get(key);


    // 2.判断是否存在

    if (StrUtil.isNotBlank(shopTypeJson)) {


      // 3.缓存 命中

      List<ShopType> typeList = JSONUtil.toList(shopTypeJson, ShopType.class);

      return Result.ok(typeList);

    }


    // 4.缓存 未命中 根据id查询数据库

    List<ShopType> typeList = query().orderByAsc("sort").list();


    // 5.判断商铺是否存在

    if (typeList == null) {


      // 6.不存在,给出错误信息

      return Result.fail("店铺类型不存在!");

    }


    // 7.存在,将商铺信息数据写入缓存

    stringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(typeList));

    stringRedisTemplate.expire(key, LOGIN_USER_TTL, TimeUnit.MINUTES);

    // 8.返回商铺信息

    return Result.ok(typeList);

  }

}


黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式的评论 (共 条)

分享到微博请遵守国家法律