基于Redis添加商铺查询缓存

文章目录

1.流程图

2.实现逻辑

Service层

java 复制代码
public Result queryById(Long id) {
        // 1.从redis中查询店铺缓存
        String shopJson = stringRedisTemplate.opsForValue().get("cache:shop:"+id);
        // 2.判断缓存是否存在
        if (StrUtil.isNotBlank(shopJson)) {
            Shop shop = JSONUtil.toBean(shopJson, Shop.class);
            return Result.ok(shop);
        }
        // 3.不存在,根据id查询数据库
        Shop shop = getById(id); // mybatisplus功能
        // 4.不存在,返回错误
        if (shop == null) {
            return Result.fail("店铺数据不存在");
        }
        // 存在,写入redis
        stringRedisTemplate.opsForValue().set("cache:shop:"+id, JSONUtil.toJsonStr(shop));
        return Result.ok(shop);
        
    }
相关推荐
小雨下雨的雨23 分钟前
第7篇:Redis性能优化实战
数据库·redis·性能优化
yeshihouhou34 分钟前
redis实现分布式锁
redis·分布式·junit
中国胖子风清扬36 分钟前
Spring AI 深度实践:在 Java 项目中统一 Chat、RAG、Tools 与 MCP 能力
java·人工智能·spring boot·后端·spring·spring cloud·ai
零一科技39 分钟前
Spring AOP 底层实现:JDK 动态代理与 CGLIB 代理的那点事儿
java·后端·spring
Spider Cat 蜘蛛猫1 小时前
`mapper-locations` 和 `@MapperScan`区别
java·spring·maven
Javatutouhouduan1 小时前
Java面试常问Redis核心知识点整理!
java·数据库·redis·java面试·后端开发·java架构师·java程序员
枯基Evan1 小时前
applicationTaskExecutor Spring 内置线程池失效
java·数据库·spring
凯子坚持 c1 小时前
Docker实战指南:MySQL、Redis与C++环境的深度容器化部署
redis·mysql·docker
Dolphin_Home1 小时前
【实用工具类】NullSafeUtils:一站式解决Java空值安全与通用操作(附完整源码)
java·网络·spring boot·后端·spring
Li_7695321 小时前
Spring Cloud —— SkyWalking(五)
java·后端·spring·spring cloud·skywalking