当前位置: 首页 > news >正文

Spring-Cache 缓存数据

使用 Spring Cache 来整合 Redis 作为缓存,核心目的是简化缓存逻辑的开发,同时利用 Redis 高性能的缓存能力,并借助 Spring 的抽象能力实现缓存逻辑的标准化、低耦合。
具体来说,为什么要这样做?

  1. 简化缓存代码,减少重复劳动
    Redis 作为缓存时,原生用法需要手动编写大量重复代码:

先查缓存(redisTemplate.opsForValue().get(key));
缓存不存在则查数据库;
查完数据库再手动将结果存入缓存(redisTemplate.opsForValue().set(key, value, 过期时间));
还需要处理缓存更新、删除等逻辑(如更新数据后删除缓存)。

pom.xml导入

2025-08-12T12:11:07.png

常用注解

2025-08-12T12:10:16.png

使用方法

在启动类加@EnableCaching注解

2025-08-12T15:12:54.png

@CachePut注解,cacheNames未键名,其实在redis生成的是cacheNames后面的userCache::在加key,一种树形结构

2025-08-12T15:32:37.png


 

2025-08-12T15:32:47.png

2025-08-12T15:33:12.png

@Cacheable注解,用于查询数据的时候,如果换成有这个数据,那么就返回这个缓存,如果没有,那么就去查询(如mysql)查询的返回结果返回给用户,方法结束后,同时也存入缓存,下次查询的时候,返回缓存数据即可,无需执行下方方法;

2025-08-12T15:48:15.png


 

2025-08-12T15:43:31.png

2025-08-12T15:46:12.png

@CacheEvict [evict:意思是逐出,驱赶],在执行方法后,删除对于缓存;

2025-08-12T15:56:00.png


 

2025-08-12T15:56:11.png


删除成功后
 

2025-08-12T15:56:27.png


 

2025-08-12T15:56:39.png


 

2025-08-12T15:56:47.png


删除所有缓存,则使用allEntries=true,就不用后面的key唯一标识了

2025-08-12T16:00:08.png

http://www.dtcms.com/a/327688.html

相关文章:

  • damn the jvm again(2)
  • 编程模型设计空间的决策思路
  • 什么是跨域访问问题,如何解决?
  • Windows怎样配置动态磁盘
  • [SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍
  • android端自定义通话通知
  • VUE的8个生命周期
  • Orange的运维学习日记--41.Ansible基础入门
  • sqli-labs通关笔记-第44关 POST字符型堆叠注入(单引号闭合 手工注入+脚本注入3种方法)
  • demo 英雄热度榜 (条件筛选—高亮切换—列表渲染—日期显示)
  • Full GC 频率优化实战
  • RGWRados::get_obj_state_impl()
  • 25C机场航班调度程序(JS 100)
  • 【智能硬件】2025年儿童智能手表革命:守护隐私的科技堡垒
  • AQS的理解
  • B树索引和B+树索引有什么区别?
  • 编译 BusyBox for ARM 平台
  • 数据结构:图
  • 1、正则表达式入门
  • (LeetCode 每日一题) 2787. 将一个数字表示成幂的和的方案数(动态规划dp+01背包)
  • Python 常用的正则表达式
  • CodeRush AI 助手进驻 Visual Studio:AiGen/AiFind 亮相(五)
  • RL推理的尽头,是熵坍缩?统一SFT与强化学习的新视角
  • 零基础学Java第七讲---调试(IDEA)
  • 面试经典150题[001]:合并两个有序数组(LeetCode 88)
  • 【代码随想录day 17】 力扣 98.验证二叉搜索树
  • iis无法访问文件
  • NTP常见日志分析
  • 每日五个pyecharts可视化图表-line:从入门到精通 (4)
  • 多轮问答与指代消解