SpringBoot整合Redis
- 使用场景:
不经常修改的数据
、固定的数据
、经常查询的数据
- 作用功能:提高查询速度
- Spring Cache + Redis缓存数据
- Spring Cache是一个非常优秀的缓存组件,自Spring3.1起,提供了类似于@Transactional注解事务的注解Cache抽象,方便切换各种底层Cahce,如
redis
- Spring Cahce优点
- 提供基本的Cache抽象,方便切换各种底层Cache
- 通过注解Cache可以实现类似于事务一样,缓存逻辑透明的应用到业务代码上,且只需要更少的代码即可完成
- 提供事务回滚时也自动回滚缓存
- 支持比较复杂的缓存逻辑
- Spring Cache是一个非常优秀的缓存组件,自Spring3.1起,提供了类似于@Transactional注解事务的注解Cache抽象,方便切换各种底层Cahce,如
- 准备工作(在项目中一般是要写到公共服务中)
- 导入依赖包
- 在配置文件中配置Redis
- 创建redis缓存配置类,配置插件(较为固定)
- 因为首页接口对应获取的首页数据变化不大,但访问量较大,所以就有必要将首页接口数据缓存到redis缓存中,减少数据库压力和提高访问速度
- Spring Boot缓存注解
- 缓存
@Cacheable
(一般用在查询的方法上)- 根据方法对其返回结果进行缓存,下次请求时,如果缓存存在,则直接读取缓存数据;如果不存在,则执行方法,并把返回的结果存入缓存中
- 属性及其描述
- value:缓存名称,必填,指定缓存存放在哪块命名空间
- cacheNames:与value差不多,二选一即可
- key:可选属性,可以使用SpEL标签自定义缓存的key
- keyGenerator: 可以使用配置类中配置的
keyGenerator
组件,如@Cacheable(value="abc", keyGenerator="keyGenerator"),这样redis中缓存的键名称为abc::类的全路径名称+方法名+参数名
- 缓存
@CachePut
(一般用在新增的方法上)- 使用该注解标志的方法,每次都会执行,并将结果存入指定的缓存中。其他方法可以直接从响应的缓存中读取缓存数据,而不需要再去查询数据库
- 属性及其描述
- value:缓存名称,必填,指定缓存存放在哪块命名空间
- cacheNames:与value差不多,二选一即可
- key:可选属性,可以使用SpEL标签自定义缓存的key
- 缓存
@CacheEvict
(一般用在更新或者删除的方法上)- 使用该注解标志的方法,会清空指定的缓存
- 属性及其描述
- value:缓存名称,必填,指定缓存存放在哪块命名空间
- cacheNames:与value差不多,二选一即可
- key:可选属性,可以使用SpEL标签自定义缓存的key
- allEntries:是否清空所有缓存,默认为false,如果指定为true,则方法调用后将立即清空所有的缓存
- beforeInvocation:是否在方法执行前就清空,默认为false,如果指定为true,则在方法执行前就会清空缓存
- 注意事项: 属性key的值需要再价格单引号,不然会报错。如@Cacheable(key="'keyName'", value="valueName")
- 缓存
- 导入依赖包
__EOF__

本文作者:xsha_h
本文链接:https://www.cnblogs.com/aitiknowledge/p/15952268.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/aitiknowledge/p/15952268.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!