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

相关推荐
小朱爱编程12319 小时前
AI点了两次发布,我多了两篇事故
数据库·人工智能·大模型·软件工程
时间售卖铺20 小时前
MySQL DML 与 DQL 语句详解
运维·数据库·mysql·云原生
codeejun20 小时前
每日一Go·MySQL-9、索引存储结构|页分裂、页合并、索引高度与磁盘
数据库·mysql
Pniubi20 小时前
事务(Spring&MySQL)
数据库·sql·spring
DBA_G21 小时前
GBase 8a MPP集群个人电脑安装环境浅析
数据库
小林ixn21 小时前
别再 MySQL + Milvus 双写了:PostgreSQL + pgvector 一张表搞定 AI 长期记忆
数据库·postgresql·agent
用户15493044857121 小时前
Redis 缓存与分布式锁:从 CAS 到 Lua
redis
深盾科技_Virbox21 小时前
换机或重装后软件许可怎么恢复:先核对哪四项
java·服务器·数据库
知行产研21 小时前
亚太工程机械市场:中国制造“换道超车“,价值重心从“卖铁“转向“卖系统“
数据库·制造
云贝贝贝21 小时前
白天稳如狗半夜就抖:OceanBase 合并转储把读写延迟顶了上去
数据库·sql·oceanbase