Springboot 集成了 cache ,它可以说是一种规范,主要作用用于数据缓存,提升查询的效率。
下面主要配置了使用redis 来进行缓存操作。
首先选择springboot 项目,选择要引入的依赖
developer tool 中 lombok
Nosql 中 spring data redis
i/o 中 spring cache abstraction
接着 docker 启动一个 redis
docker run -d --name myredis -p 6379:6379 redis --requirepass “密码”
springboot 配置文件中配置 redis
spring.redis.port=6379(和上面启动的容器的端口号一致)
spring.redis.password=你的redis密码
spring.redis.host=linux机器的ip

接着就是测试
首先在启动类上面加上开启缓存的注解

@SpringBootApplication
@EnableCaching//开启缓存功能
public class RediscacheApplication {public static void main(String[] args) {SpringApplication.run(RediscacheApplication.class, args);}}

定义User类

因为要使用redis 序列化 ,所以要实现序列化接口

定义一个UserService,主要测试三个注解。
@Cacheable :缓存数据
@CachePut : 更新缓存的数据
@CacheEvict : 删除缓存的数据

@Cacheable(cacheNames = "sc", key = "#id")//多个参数可以使用#标识哪一个是key,否则就会把所有的参数都当成keypublic User getUser(int id){System.out.println("调用了一次");User user = new User();user.setId(id);user.setName("hhh");return user;}

cacheNames我在测试的时候必须要添加,作为缓存到redis 的键值对的 key 的前缀,否则会报错。
key 则是表示使用id 作为key ,只有一个参数其实可以不用使用key 参数。但是如果是多个参数则是必须要添加。通过多次调用此方法,最终输出结果打印一次“调用了一次”,多次输出user。

如果数据库的数据发生了更新,此时需要进行更新缓存。

@CachePut(cacheNames = "sc", key = "#user.id")public User updateUser(User user) {return user;}

同样需要配置cacheNames 以及 配置key 是根据该对象的哪一个属性来进行更新的,一般都是唯一的主键 id。

最后如果是要删除缓存,如下。

 @CacheEvict(cacheNames = "sc")public void deleteUser(int id){System.out.println("id delete");}

通过该注解指定cacheNames 即可,并传入id 通过 id 来删除缓存。

该缓存只要实现了注解,就会自动向redis 中存储数据。其他的缓存原理大致是一致的。

Springboot中cache的使用相关推荐

  1. Spring学习笔记(三十二)——SpringBoot中cache缓存的介绍和使用

    目录 Spring Boot与缓存 什么是cache java cache:JSR107 Spring缓存抽象 redis和cache的使用场景和区别 SpringBoot缓存的使用 0. 开启缓存的 ...

  2. Springboot中的缓存Cache和CacheManager原理介绍

    一.背景理解 什么是缓存,为什么要用缓存? 程序运行中,在内存保持一定时间不变的数据就是缓存.简单到写一个Map,里面放着一些key,value数据,就已经是个缓存了.所以缓存并不是什么高大上的技术, ...

  3. 你知道如何在springboot中使用redis吗

    特别说明:本文针对的是新版 spring boot 2.1.3,其 spring data 依赖为 spring-boot-starter-data-redis,且其默认连接池为 lettuce ​  ...

  4. springboot中的mybatis是如果使用pagehelper的

    springboot中的mybatis是如果使用pagehelper的 springboot中使用其他组件都是基于自动配置的AutoConfiguration配置累的,pagehelper插件也是一样 ...

  5. 【SpringBoot】在SpringBoot中使用Ehcache

    SpringBoot提供了对缓存的支持,通过在启动类中添加@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),Spring Boot根据下面的顺序去侦测缓存提供者: ...

  6. java分布式会话redis_详解springboot中redis的使用和分布式session共享问题

    对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash.轮训.根据权重.随机等.不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomca ...

  7. 面试官 | SpringBoot 中如何实现异步请求和异步调用?

    作者 | 会炼钢的小白龙 来源 | cnblogs.com/baixianlong/p/10661591.html 一.SpringBoot中异步请求的使用 1.异步请求与同步请求 特点: 可以先释放 ...

  8. SpringBoot集成Cache缓存(Redis缓存,RedisTemplate方式)

    1.说明 SpringBoot集成Redis缓存, 首先创建一个Spring Boot工程, 使用Maven向导方式创建:SpringBoot集成Maven工程 然后引入redis的spring bo ...

  9. SpringBoot集成Cache缓存(Ehcache缓存框架,注解方式)

    1.说明 Spring定义了CacheManager和Cache接口, 用来统一不同的缓存技术, 例如JCache,EhCache,Hazelcast,Guava,Redis等. 本文通过Spring ...

最新文章

  1. tensor转换 pytorch tensorflow
  2. Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图
  3. spring事务(三)
  4. 你知道 Spring Batch 吗?
  5. 技术前沿资讯-Apache Flink 1.14 新特性介绍
  6. PrismJS,一款漂亮的代码高亮工具
  7. 使用RedisTemplate实现Redis分布式锁出现的一些列问题(避坑)
  8. 中间件配置文件-redis
  9. 苹果x与苹果xs的区别_卡通与苹果Xs手机壳的完美邂逅,可爱气质萦绕指尖
  10. python单词倒排_【原创】python倒排索引之查找包含某主题或单词的文件
  11. winpcap基本原理及常见应用_锁相放大器的基本原理(Part 1)
  12. QPainter基本绘图【1】
  13. LayUI 之动态树形菜单
  14. Java中if条件语句举例详解
  15. java对象为什么要重写equals方法
  16. Gitlab 设置页面语言为简体中文
  17. Java中的经典算法之冒泡排序(Bubble Sort)
  18. 2023王道数据结构考研习题汇总
  19. 华为鲲鹏HCIA考试-练习03
  20. html5移动端轮播图特效,支持移动端的纯js轮播图插件awesome-slider

热门文章

  1. VBScript脚本运用(脚本程序与宿主程序的交互)
  2. codeforces 1326 E.Bombs
  3. VRP和调度问题的主流精确算法和启发式算法
  4. 网络编程中的SO_REUSEADDR和SO_REUSEPORT参数详解
  5. Quartz 使用(二) — quartz.properties配置
  6. 17岁少年捅死想要性侵女友的歹徒:我坐牢,也不能让她受伤
  7. PAT 乙级 1002 写出这个数
  8. 【语义分割】语义分割经典模块
  9. 惠普bios硬重置_惠普笔记本电脑按什么样键进入BIOS设置?惠普笔记本BIOS密码忘了咋重置...
  10. python使用turtle库绘制一个红色五角星_使用turtle库绘制红色五角星图形