基于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);
        
    }
相关推荐
珹洺2 小时前
C++从入门到实战(五)类和对象(第一部分)为什么有类,及怎么使用类,类域概念详解(附带图谱等更好对比理解)
java·c语言·开发语言·数据结构·c++·redis·缓存
八股文领域大手子3 小时前
Redis Lua脚本实现令牌桶限流算法
java·数据库·redis·算法·junit·mybatis·lua
小丁爱养花3 小时前
MyBatis-Plus:告别手写 SQL 的高效之道
java·开发语言·后端·spring·mybatis
IT成长日记3 小时前
Redis哨兵模式(Sentinel)高可用方案介绍与配置实践
redis·sentinel·高可用·哨兵模式
Key~美好的每一天6 小时前
Spring的传播行为
数据库·sql·spring
lqstyle6 小时前
Spring代理与动态代理
后端·spring·面试
老友@7 小时前
分布式限流方案:基于 Redis 的令牌桶算法实现
java·redis·分布式·算法·令牌桶·接口限流
大小科圣17 小时前
基于redis实现会话保持
数据库·redis·git
飞鼠_17 小时前
c++简单实现redis
c++·redis·bootstrap