60-springboot_Cache

Springboot-缓存

1.JSR107规范

这些具体的核心接口整合难度有点大,之后整合还是使用Spring缓存抽象

2.交互流程

3.spring缓存抽象

spring给提供的一些缓存技术

4.使用缓存技术

①开启基于注解的缓存@EnableCaching

②@Cacheable,方法级别,直接将方法的返回结果进行缓存

属性:

cacheName/value,指定缓存名字;

key:缓存数据的key,如果不指定那就默认为缓存参数的值;

还可以写SpEL表达式:给了一个form 

keyGenerator:key的生成器,可以自己指定key的生成器的组件id,key/keyGenerator二选一

还可以指定缓存管理器cacheManager,或者指定缓存解析器cacheResolver

condition:可以根据条件来判断是否缓存

unless:除非(否定缓存)、与condition是相反的

③CachePut:既调用方法,又使用缓存

在执行标注了@CachePut注解以后的方法,每次尽心dao操作以后还会更新缓存,但是这里要注意,要传key值,不然这个方法没啥有意义

④@CacheEvict

缓存清除:

直接指定key然后,清楚指定区域的缓存,还有删除区域的所有缓存

还有beforeInvocation = true,在删除方法之前清空等等api,那么如果默认是beforeInvocation = false,删除方法一旦抛异常,缓存是不会删除的

⑤@Caching

里面可以指定多个缓存规则,有多少分数据,暂时不管,到时候只用redis

⑥@CacheConfiguration

抽取一些公共的缓存配置

5.redis

在linux下载redis的镜像

可以用

Redis Desktop Manager直接操作redis

关于redis的一系列命令,在官网直接由,比较简单

ref:http://www.redis.cn/commands.html

6.redis-integration

①配置redis主机地址:118.24.44.169

②这里生产了2个templates:一个是stringRedisTemplate,专门为了简化来操作string-value的,还有一个是object-object的k-v:redisTemplate

③直接调用template的api来进行redis操作。这里有很多ops-api来针对不同的值进行redis操作

④如果需要做object的缓存,object要序列化,这个时候redis存的就是object序列化以后的二进制文件

⑤我们也可以把object转为json存到redis里面,什么jackson之类的7788的都可以

7.redis完整演示

①引入redis的starter以后,默认的cacheManager就是RedisCacheManager了,自然创建了RedisCache来缓存数据

@Cache是"通用"注解

不管你使用什么缓存中间件,只要spring支持该技术都是可以用@Cache系列注解的

②这里默认是使用的JDK的序列化器

③使用redis如何设置加前缀,那么key值前面会加一个cacheName作为前缀

④我们也可以不用注解,把CacheManager注入进来使用

tips:就springboot 2.0以上跟1.0在 redis缓存使用上就CacheManager的使用上还是有大的差别,但是还是比较简单的,到时候看文档即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值