缓存更新操作实例

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缓存怎么写?

相关推荐
m0_5873830012 分钟前
无人自助拼豆系统从需求分析到落地部署全流程实战开发指南
java·经验分享·后端·struts·小程序·架构·需求分析
a努力。14 分钟前
四维解析Agent记忆架构:从零实战LangGraph长期记忆
java·开发语言·数据库
碧海银沙音频科技研究院16 分钟前
炬芯ATS308X的扩音器:麦克风到扬声器直通功能实现
java·linux·运维
Rain的Java大神之路22 分钟前
被问麻了!Function Calling、MCP、Skill 到底啥关系?一张图讲透三层架构,附 Java 生产落地全流程+30个坑
java·后端·ai编程
Wang's Blog22 分钟前
Java 项目部署之 Docker工具快速入门: Docker Compose 初识与安装
java·开发语言·docker
niucloud-admin29 分钟前
JAVA V6 多商户商城 开发文档——项目启动
java·开发语言·python
刻BITTER39 分钟前
LocalLow 乱码文件排查 Intel INSC着色器缓存文件
缓存·哈希算法·着色器
众链网络1 小时前
Agent 重试的工程解法:幂等、断点续跑与熔断怎么落地
java·前端·数据库·人工智能
Wang's Blog1 小时前
Java 项目部署之 Docker工具快速入门: 镜像命令从 pull 到 load 的完整实操
java·开发语言·docker