1、简单的一个demo
spring boot2.0中使用Redis做为缓存,首选引入 依赖:
1 |
|
配置文件:
1 | spring: |
构建数据源和缓存配置
1 | /** |
创建实体,mapper和service
1 | public class Student implements Serializable { |
第一次运行如下:

可以看到由于缓存中没有数据,去数据库查询。并且Redis中有了数据:
第二次运行:

没有mybatis查询的日志,直接在redis中就有值存在。
io.lettuce.core.KqueueProvider是指Spring boot2中默认使用lettuce操作Redis
使用缓存的几种注解:

具体可以参考:缓存数据
@CacheConfig 每个缓存操作都要写cacheName,keygenerator,很麻烦,为了统一配置使用CacheConfig。
2、统一做缓存
第一种实现可以通过自定义注解,对读方法增加aop处理,同时对写方法做删除缓存处理
定义两个注解:
1 | (ElementType.METHOD) |
切面:
1 | /** |
配置和操作Redis类:
1 |
|
业务类:
1 |
|
其他和上面例子一致
第一次运行:

可以看到查询了数据库,并且吧结果放到缓存。

第二次运行:可以看到直接从缓存取。
第二种方式是,不用注解,直接通过AOP统一为部分或者全部的方法添加缓存或者删除更新缓存。
代码详见:https://github.com/huingsn/tech-point-record中的data-cache-redis-demo