1:cache的总体框架
如下图,cache 接口是所有guava cache的最顶层接口,这里定义了对缓存操作的最基本方法。


2:从一个例子开始
回想下,通常在工程中,我们使用缓存的时候大概要设置哪些参数呢?1:尺寸大小,设置合理的内存空间,防止无限制的增长内存 2:过期时间,对于缓存而言因为我们的内存资源很有限,所以一般要设置过期的时间,定时删除。3:失效策略,当缓存空间已满的时候,我们 是使用什么样的策略来添加后续的key,删除原来缓存中的哪个key。4:如果没从缓存中找到key,如何进行回源。
缓存配置代码如下:



注意:guava cache默认是使用lru-1算法,不能配置。
从上面的demo里,我们至少看到了3个在guava cache非常有用的对象,分别是CacheBuilder,CacheLoader以及Cache接口,后面的文章会具体对他们进行源码层面的解读和分析。
网友评论