缓存更新操作实例

Controller → Service(接口) → ServiceImpl(实现类,写缓存)

1.list缓存


复制代码
@RestController
@RequestMapping("/shop-type")
public class ShopTypeController {

    @Resource
    private IShopTypeService typeService;

    @GetMapping("/list")
    public Result queryTypeList() {
        // 只做一件事:调用service
        return Result.ok(typeService.queryTypeList());
    }
}
复制代码
public interface IShopTypeService extends IService<ShopType> {
    // 查询店铺类型列表(带缓存)
    List<ShopType> queryTypeList();
}

@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {

    @Resource
    private StringRedisTemplate stringRedisTemplate;
    private static final String KEY = "cache:shop:type:list";

    @Override
    public List<ShopType> queryTypeList() {
        // 1. 查缓存
        String json = stringRedisTemplate.opsForValue().get(KEY);
        if (StrUtil.isNotBlank(json)) {
            return JSONUtil.toList(json, ShopType.class);
        }

        // 2. 查数据库(标准写法!)
        List<ShopType> list = query().orderByAsc("sort").list();

        // 3. 写缓存
        stringRedisTemplate.opsForValue().set(KEY, JSONUtil.toJsonStr(list));

        return list;
    }
}

2.id缓存怎么写?

相关推荐
2601_949814696 小时前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端
RDCJM6 小时前
Spring Boot spring.factories文件详细说明
spring boot·后端·spring
小雅痞7 小时前
[Java][Leetcode simple] 28. 找出字符串中第一个匹配项的下标
java·开发语言·leetcode
likerhood7 小时前
java中的不可变类(Immutable)
java·开发语言
随风,奔跑7 小时前
Spring Cloud Alibaba(四)---Spring Cloud Gateway
后端·spring·gateway
yaoxin5211238 小时前
389. Java IO API - 获取文件名
java·开发语言·python
Wang15308 小时前
Java排序
java
逸风尊者8 小时前
XGBoost模型工程使用
java·后端·算法
一嘴一个橘子8 小时前
MP 自定义业务方法 (二)
java
低客的黑调8 小时前
MyBatis-Plus-从 CRUD 到高级特性
java·servlet·tomcat