java cache相关知识

本文深入探讨了JavaCache的基本原理及核心接口,包括CachingProvider、CachingManager、Cache、Entry和ExpiryPolicy的作用与功能。同时,文章详细解析了SpringCache的运作机制,介绍了@Cacheable、@CacheEvict、@CachePut、@Caching和@CacheConfig等注解的应用场景与配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java Cache

基本原理

核心内容

java cache API的5个核心接口:CachingProvider,CachingManager,Cache,Entry,ExpiryPolicy
CachingProvider:
缓存提供者定义建立,配置,获得,管理,控制一个或者多个CacheManager的机制。一个应用程序能使用一个或者多个CacheProvider在运行时。
CachingManager:
缓存管理者定义建立,配置,获得,管理,控制一个或者多个唯一名称的Caches,在CacheManager的上下文中。一个CacheManager被一个CachingProvider拥有。
Cache:
Cache有点像一个Map的数据结构,准许临时存储基于K-V结构的数据,例如像:java.util.Map的数据结构。一个Cache被一个CacheManger拥有。
Entry:
Entry是有缓存存储的单个键值对元素
ExpiryPolicy:
ExpiryPolicy被用于设置过期策略

存储方式
值存储:缓存将拷贝应用提供的keys和values,缓存中存储的是一个拷贝副本,存储在缓存中的数据不会因为后续应用中修改keys和values发生改变,数据必须实现序列化。

举例:redis

引用存储:缓存中存储的是应用提供的keys和values的引用值,应用的keys和values值发生改变后,引用指向的值也会发生改变

举例:JVM本地缓存guava

Spring Cache

基本原理

核心内容

缓存声明

spring缓存声明的注解:@Cacheable,@CacheEvict,@CachePut,@Caching,@CacheConfig

@Cacheable:

@Cacheable配置数据对象

@CacheEvict:

@CacheEvict删除缓存数据

@CachePut:

@CachePut在不影响方法执行的情况下,更新缓存信息

@Caching:

@Caching将应用与方法的多个缓存重新分组

@CacheConfig:

@CacheConfig共享一些常见的缓存配置,提供类级别的配置,可以共享缓存名称

 

转载于:https://my.oschina.net/u/1017791/blog/2877999

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值