缓存的作用:调用方法时如果调用过并已保存在缓存中则从缓存中调用结果,否则存入缓存并返回运行结果。
比如查数据库数据,会先访问缓存看有没有现成的,没有的话再访问数据库查询。
主要接口:
1.CachingProvider:创建配置获取管理多个CacheManager
2.CacheManager:创建配置获取管理多个Cache
3.Cache:类似Map的数据结构,临时储存key为索引的值
4.Entry:key-value对
5.Expiry:用于定义有效期。(缓存的生命周期?)
主要缓存实现方法:
RedisCache(主流)
EhCacheCache
ConcurrentMapCache
注解(用来解释代码或者给代码添加标记- -很抽象的玩意。。。):
@Cacheable: 针对方法配置,根据不同方法进行缓存
@CacheEvict:清空缓存
@CachePut:更新缓存,保证方法被调用(不管有没有已经被缓存),结果被缓存。
策略:
keyGenerator:缓存数据时key的生成策略(因为是map数据结构所以key和value需要有关联提高查询速度)
serialize:缓存数据时value序列化策略