google Guava Cache使用(本地缓存)

1.在多线程并发场景中往往是离不开cache的,需要根据不同的场景来选择不同的cache,

cache就是为了提升系统性能而开辟的一块内存空间。

比如: 分布式缓存如:Redis,memcached(大数据量,加缓存的接口较多的项目)

            本地缓存如:ehcache,GuavaCache。(数据量小,需要加缓存的接口较少)

2.一般而言,对于那些频繁需要查询比对的热点数据,我们采用适用缓存,对于数据量较小的数据,我们会建议用缓存。

3.Cache和Map的适用方式差不多,也可以使用 @Cacheable 注解。



1.先引pom.xml文件


google Guava Cache使用(本地缓存)_第1张图片

2.创建cache


google Guava Cache使用(本地缓存)_第2张图片

配置说明:

#  initialCapacity=[integer]: 初始的缓存空间大小

#  maximumSize=[long]: 缓存的最大条数

#  maximumWeight=[long]: 缓存的最大权重

#  expireAfterAccess=[duration]: 最后一次写入或访问后经过固定时间过期

#  expireAfterWrite=[duration]: 最后一次写入后经过固定时间过期

#  refreshAfterWrite=[duration]: 创建缓存或者最近一次更新缓存后经过固定的时间间隔,刷新缓存

#  weakKeys: 打开key的弱引用

#  weakValues:打开value的弱引用

#  softValues:打开value的软引用

#  recordStats:开发统计功能

注意:

expireAfterWrite和expireAfterAccess同时存在时,以expireAfterWrite为准。

maximumSize和maximumWeight不可以同时使用

weakValues和softValues不可以同时使用


注解

别着急,先简单了解一下@Cacheable,@CachePut,@CacheEvit

 @Cacheable注解,如果是类被注解,那么该类所有的方法下,如果在查询时,会先去查询缓存,没有的话,再去调用方法查询,并且方法的返回值都会被缓存,如果是方法被注解,那么查询的时候,也会遵从先缓存,然后在方法,并且该方法的返回值都会被缓存.

直接上图!!

google Guava Cache使用(本地缓存)_第3张图片
先暂时更这些~

未完,待续~

你可能感兴趣的:(google Guava Cache使用(本地缓存))