概述

使用 Spring Cache 可以极大的简化我们对数据的缓存,并且它封装了多种缓存,本文基于 redis 来说明。

基本使用

所需依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>
</dependency>

配置文件

spring:# redis连接信息redis:host: 192.168.56.10port: 6379cache:# 指定使用的缓存类型type: redis# 过期时间redis:time-to-live: 3600000# 是否开启前缀,默认为trueuse-key-prefix: true# 键的前缀,如果不配置,默认就是缓存名cacheNameskey-prefix: CACHE_# 是否缓存空置,防止缓存穿透,默认为truecache-null-values: true

Spring Cache 提供的注解如下,使用方法参见:官方文档,通过这些注解,我们可以方便的操作缓存数据。

  • @Cacheable:触发缓存写入的操作
  • @CacheEvict:触发缓存删除的操作
  • @CachePut:更新缓存,而不会影响方法的执行
  • @Caching:重新组合要应用于一个方法的多个缓存操作,即对一个方法添加多个缓存操作
  • @CacheConfig:在类级别共享一些与缓存有关的常见设置

例如,如果需要对返回结果进行缓存,直接在方法上标注 @Cacheable 注解

@Cacheable(cacheNames = "userList") //指定缓存的名字,便于区分不同缓存
public List<User> getUserList() {...
} 

缓存-SpringCache-整合体验@Cacheable相关推荐

  1. Redis-20Spring缓存机制整合Redis

    文章目录 概述 Redis 和数据库读 Redis和数据库写 使用 Spring 缓存机制整合 Redis 工程结构 pom.xml DB Script & Redis Address POJ ...

  2. mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)

    查询缓存 1 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 2 mybat ...

  3. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  4. SpringCache整合EhCache2和EhCache3(JCache)

    简介 在项目中想使用EhCache作为本地内存,而EhCache又存在这两个大版本,一个是2一个是3 .两者的区别很大,很容易在整合时踩到坑: 网上大多数(几乎全部) 整合都是基于EhCache2版本 ...

  5. SpringBoot整合Redis - @Cacheable 和 RedisTemplate

    对之前网站做了一些很简单的优化,给用户列表加了一个分页功能. 分页就更好考虑加载速度,如果换一页就要等几秒,那体验感是非常差的. 因此想到了加一个redis缓存. springboot整合redis有 ...

  6. Java开发 - SpringCache初体验

    前言 早些时候,博主介绍过Redis的使用:Java开发 - Redis初体验,Redie是基于缓存的一项技术,对于Redis,博主此处不再赘述,不了解的可以去看这篇文章,但Redis缓存并不是顶峰, ...

  7. spring中自带的缓存springcache

    springcache使用自带的缓存---->标志 EnableCaching 存缓存 ------------------> Cacheable 例: @Cacheable(value ...

  8. 缓存-SpringCache

    为什么要用缓存 我们一定听说过"缓存无敌"的话,特别是在大型互联网公司,"查多写少"的场景屡见不鲜.网络上查到的很多诸如系统吞吐量提升50%.接口耗时降低80% ...

  9. mybatis学习教程中级(十)mybatis和ehcache缓存框架整合(重点)

    1.前言 前面讲解了mybatis的一级.二级缓存.一级然并卵(spring整合后),二级还是有用的.我们现在来看看用ehcache来维护管理二级缓存.不要问我为什么,因为都这么用!!!java是框架 ...

最新文章

  1. Ceph分层存储分析
  2. deepnode处理过的图片_这款实用的图片软件,其功能相当于十几款图片处理软件的功能之和...
  3. 二叉树实现java,二叉树实现java
  4. css不换行属性_前端 | css display:flex 的六个属性你知道吗
  5. 在.NET 6中使用DateOnly和TimeOnly
  6. git pull 提示错误,Your local changes to the following files would be overwritten by merge
  7. 不叫K50 Pro+!Redmi K50系列超大杯或有新名称
  8. 时间戳转为时间友好显示
  9. 使用递归解决斐波那契数列的性能问题
  10. android 全局对话框6,[Android][Framework]从全局AlertDialog聊聊WindowManager
  11. 检测提取图像中的直线(基于霍夫变换)
  12. 字符数组中查找字符串或字符数组
  13. ROS系统中启用摄像头模块
  14. 随机出题在线考试系统php_随机出题在线考试系统
  15. Makefile 的解读(一)
  16. 《技术人创业攻略》-用技术改变世界!
  17. numpy ndarry根据条件筛选数据
  18. 速解元宇宙 / Metaverse 迷雾下的行动指南
  19. @property python知乎_知乎某处XSS+刷粉超详细漏洞技术分析
  20. csgo显示无法更新服务器,csgo更新无法连接服务器

热门文章

  1. yum安装apache及问题解决
  2. CentOS查看CPU、内存、版本等系统信息
  3. 鲁棒性、稳定性、非脆弱性
  4. TP框架对数据库的基本操作
  5. 通过配置文件启动odoo-10.0
  6. iOS四种多线程(swift和oc)
  7. 【Hibernate】Hibernate中查询表名、字段名以及字段类型等信息
  8. Socket系列3 Socket服务端开发 数据的接收和发送
  9. Service 深度解析
  10. Nginx的location区块的作用及设置