黑马点评 - 商铺类型缓存练习题(Redis List实现)

首先明确返回值是一个 List<ShopType> 类型那么我们修改此函数并在 TypeService 中声明 queryTypeList 方法,并在其实现类中实现此方法

java 复制代码
    @GetMapping("list")
    public Result queryTypeList() {
        return typeService.queryTypeList();
    }

实现此方法首先需要明确数据类型,我选择的是 List ,可以方便的实现数据的读写,代码如下

java 复制代码
@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {
    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Override
    public Result queryTypeList() {
//        1.从 redis 查询商铺列表
        String key = "cache:shoplist";
        List<ShopType> typeList = BeanUtil
                .copyToList(stringRedisTemplate.opsForList().range(key, 0, -1), ShopType.class);
//        2.命中,直接返回
        if (typeList != null && !typeList.isEmpty()) {
            return Result.ok(typeList);
        }
//        3.未命中,查询数据库
        typeList = query().orderByAsc("sort").list();
//        4.将商铺列表保存至 redis
        for (ShopType shopType : typeList) {
            stringRedisTemplate.opsForList().leftPush(key, shopType.getName());
        }
//        5.返回店铺列表
        return Result.ok(typeList);
    }
}

运行之后刷新网页可以发现店铺列表已经存储到了 Redis 中了!

相关推荐
金色天际线-14 小时前
nginx + spring cloud + redis + mysql + ELFK 部署
redis·nginx·spring cloud
LB211214 小时前
Redis 黑马skyout
java·数据库·redis
TDengine (老段)14 小时前
TDengine 浮点数新编码 BSS 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)14 小时前
TDengine 数学函数 ASIN() 用户手册
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
稚辉君.MCA_P8_Java21 小时前
JVM第二课:一文讲透运行时数据区
jvm·数据库·后端·容器
阳光明媚sunny1 天前
Room持久化库中,@Transaction注解的正确使用场景是?
android·数据库
北极糊的狐1 天前
MySQL常见报错分析及解决方案总结(15)---Can’t connect to MySQL server on ‘localhost‘ (10061)
数据库·mysql
濑户川1 天前
Django5 与 Vue3 表单交互全解析:从基础到实战
数据库
weixin_438077491 天前
langchain官网翻译:Build a Question/Answering system over SQL data
数据库·sql·langchain·agent·langgraph
-雷阵雨-1 天前
MySQL——数据库操作攻略
数据库·mysql