黑马点评 - 商铺类型缓存练习题(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 中了!

相关推荐
�时过境迁,物是人非1 小时前
Redis地理散列GeoHash
前端·redis·bootstrap
字节全栈_PVK1 小时前
Flask 使用Flask-SQLAlchemy操作数据库
数据库·python·flask
艾醒(AiXing-w)1 小时前
玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱
数据库·语言模型·neo4j
yaoxin5211232 小时前
第十章 E - F 开头的术语
数据库
doubt。2 小时前
[SUCTF 2018]MultiSQL1
网络·数据库·sql·安全·web安全·网络安全
金融OG2 小时前
99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)
大数据·数据库·人工智能·python·机器学习·金融
何似在人间5753 小时前
Redis入门概述
数据库·redis·缓存
字节全栈_OYI3 小时前
在Windows中 基于Oracle GoldenGate (OGG)进行MySQL-&gt;MySQL数据库同步配置(超详细)_ogg-15146
数据库·windows·oracle
MXin53 小时前
【DB】Oracle存储过程
数据库·oracle