spring boot缓存

spring boot缓存我们不得不提到一个规范(JSR-107),其实就是Java提供得一种处理缓存得接口规范。

JSR-107规范定义了5个核心接口,分别为CachingProvider,CacheManager、Cache、Entry、Expiry

       CachingProvider(缓存提供者):创建、配置、获取、管理和控制多个 CacheManager;

       CacheManager(缓存管理器):创建、配置、获取、管理和控制多个唯一命名得Cache,

cache存在于cacheManager得上下文中,一个cacheManager只对应一个cachingProvider

       Cache(缓存):由CacheManager管理的,CacheManager管理cache的生命周期,cache存在于cacheManager的上下文中,是一个类似map的数据结构,临时存储是以key为索引的值,一个cache只被一个CacheManager所拥有

       Entry(缓存键值对):是一个存储在cache中的key-value对

       Expiry(缓存时效):每一个存储在cache中的条目都是由一个定义的有效期,一旦超过这个时间,条目就会自动过期,过期以后条目不可以访问,更新,删除。缓存有效期可以通过expiryPolicy设置。

一个应用里面可以有多个缓存提供者 (CachingProvider) ,一个缓存提供者可以获取到多个缓存管
理器 (CacheManager) ,一个缓存管理器管理着不同的缓存 (Cache) ,缓存中是一个个的缓存键值
(Entry) ,每个 entry 都有一个有效期 (Expiry) 。缓存管理器和缓存之间的关系有点类似于数据库中
连接池和连接的关系。

 

 在缓存得设置中还有另外几个缓存注解:

@Cacheable 标注在方法上,表示该方法的结果需要被缓存起来,缓存的键由 keyGenerator
策略决定,缓存的值的形式则由 serialize 序列化策略决定 ( 序列化还是 json 格式 ) ;标注上该注解之
后,在缓存时效内再次调用该方法时将不会调用方法本身而是直接从缓存获取结果
@CachePut 也标注在方法上,和 @Cacheable 相似也会将方法的返回值缓存起来,不同的是标
@CachePut 的方法每次都会被调用,而且每次都会将结果缓存起来,适用于对象的更新
@CacheEvict 清空缓存
@EnableCaching  开启基于注解的缓存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值