[redis]黑马点评-商品类型缓存(课后练习)

目录

介绍

代码

ShopTypeController

IShopTypeService

ShopTypeServiceImpl

RedisConstants


介绍

黑马点评P37集课后作业,给商铺类型业务添加缓存。

和上一条不同的是,商户缓存是String类型,商户类型的数据是List集合类型,需要做一些改动。

代码

ShopTypeController

复制代码
@RestController
@RequestMapping("/shop-type")
public class ShopTypeController {
    @Resource
    private IShopTypeService typeService;

    @GetMapping("list")
    public Result queryTypeList() {
        return typeService.queryAll();
    }
}

IShopTypeService

复制代码
public interface IShopTypeService extends IService<ShopType> {
    /**
     * 查询所有商铺类型
     * @return 商铺类型列表
     */
    Result queryAll();
}

ShopTypeServiceImpl

复制代码
@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    /**
     * 查询所有商铺类型
     *
     * @return 商铺类型列表
     */
    @Override
    public Result queryAll() {
        //1、获取redis中的商铺类型缓存
        String shopType = stringRedisTemplate.opsForValue().get(CACHE_SHOPTYPE_KEY);
        //2、判断缓存是否存在
        if (StrUtil.isNotBlank(shopType)){
            //3、存在,直接返回
            return Result.ok(JSONUtil.toList(shopType, ShopType.class));
        }
        //4、不存在,查询数据库
        List<ShopType> shopTypes = query().orderByAsc("sort").list();
        //5、不存在,返回错误
        if (shopTypes == null){
            return Result.fail("商铺类型不存在");
        }
        //6、存在,写入redis
        stringRedisTemplate.opsForValue().set(CACHE_SHOPTYPE_KEY, JSONUtil.toJsonStr(shopTypes));
        return Result.ok(shopTypes);
    }
}

RedisConstants

复制代码
public class RedisConstants {

    public static final String CACHE_SHOPTYPE_KEY = "cache:shoptype:";

}

可以看到商品类型数据被正确的存储到Redis中

相关推荐
a里啊里啊1 天前
Redis面试题记录
数据库·redis·缓存
杰克尼1 天前
redis(day03-优惠券秒杀)
数据库·redis·缓存
刘~浪地球1 天前
数据库与缓存--MySQL 高可用架构设计
数据库·mysql·缓存
小兜全糖(xdqt)1 天前
Ubuntu22.04安装最新版本redis
数据库·redis·缓存
大卡片1 天前
IO缓存区
linux·运维·缓存
不知名的老吴2 天前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
杰克尼2 天前
redis(day03-商户查询缓存)
数据库·redis·缓存
刘~浪地球2 天前
Redis 从入门到精通(十三):哨兵与集群
数据库·redis·缓存
一个有温度的技术博主2 天前
Lua语法详解:从变量声明到循环遍历的避坑指南
redis·缓存·lua
一个有温度的技术博主2 天前
深入多级缓存:JVM进程缓存实战与数据库表拆分策略
jvm·数据库·缓存