Guava:缓存
一、适用性
缓存在广泛的使用场景里特别的有用。例如,当一个计算或取回一个值当代价特别大,并且通过一个确定的输入获取一个值超过一次的时候,你应该使用缓存。
一个Cache类似于ConcurrentMap,但是并不完全相同。最基本的不同是ConcurrentMap 会保存所有添加进入它的元素,直到明确移除。另一个方面,Cache为了考虑到内存占用,通常配置成自动驱逐项。在一些情况下,由于自动的缓存加载,LoadingCache不配置驱逐条目,也是有用的。
通常情况下,Gauva缓存工具可以应用在下面的情况:
-
你将花费内存来提升速度;
-
你预期那个key要查询超过一次;
-
你的缓存不需要存储超过RAM容量的数据;
Guava缓存是加载到你运行的单个应用的本地。它们不把数据存到文件中,或外面的服务器。如果这不符合你的需求,考虑使用像Memcached工具。
如果上面这些都适合你的应用场景,那么Guava Cache对你就是好的选择。
通过CacheBuilder 构造器模式获取一个Cache 的代码示例展示在下面。但是自定义你的缓存是更有趣的部分。
注意,如果你不需要Cache的特性,ConcurrentMap更有效。但是它是极其困难或不可能的,复制更

Guava缓存适用于需要提升速度和节省计算资源的场景。它提供了多种驱逐策略,如基于大小、时间和引用。支持CacheLoader进行自动加载,通过Callable计算值,以及直接插入。缓存可以配置为基于大小、时间或引用进行驱逐,同时提供了统计功能和移除监听器。刷新操作可以异步执行,允许定时刷新和自定义行为。
订阅专栏 解锁全文
2098

被折叠的 条评论
为什么被折叠?



