开发者学堂课程【SpringBoot 快速掌握 - 高级应用:Spring 缓存抽象简介】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/613/detail/9287
Spring 缓存抽象简介
Spring 从3.1开始定义了 org. spring framework. cache.
Cache 和 org. springframework . cache. CacheManager
接口来统一不同的缓存技术;并支持使用 JCache(JSR-107) 注解简化我们开发;
Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合;
Cache 接口下 Spring 提供了各种 xxxCache 的实现:
如 RedisCache , EhCacheCache , ConcurrentMpCache 等;
每次调用需要缓存功能的方法时,Sprinq 会检查检查指定参数的指定的目标方法是否已经被调用过;如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。
使用 Spring 缓存抽象时需要关注以下两点;
⒈确定方法需要被缓存以及他们的缓存策略
⒉从缓存中读取之前缓存存储的数据
几个重要概念&缓存注解
Cache |
缓存接口,定义缓存操作。实现有 RedisCache、EhCacheCache、ConcurrentMapCache 等 |
CacheManager |
缓存管理器,管理各种缓存(cache)组建 |
@Cacheable |
主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 |
@CacheEvict |
清空缓存 |
@CachePut |
保证方法被调用,又希望结果被缓存。 |
@EnableCaching |
开启基于注解的缓存 |
keyGenerator |
缓存数据时 key 生成策略 |
serialize |
缓存数据时 value 序列化策略 |
第一次查1号用户,由于标了 @Cacheable 就会被放在缓存中,如果下一次还是查询1号用户,就不需要调用了,直接在缓存中找即可。
要删除一个用户,就可以在上边标明 @CacheEvict 即可清空缓存。
@CachePut 就经常用来缓存更新。
但是要想用缓存注解,就得开启 @EnableCaching。