它是提供了一种智能途径来控制缓存,调优性能。特性包括:
内存内缓存对象大小的控制,避免OOM出现。
池化(cache manager级别)的缓存大小获取,避免单独计算缓存大小的消耗。
灵活的独立基于层的大小计算能力,下图中可以看到,不同层的大小都是可以单独控制的。
可以统计字节大小、缓存条目数和百分比。
优化高命中数据的获取,以提升性能,参见下面对缓存数据在不同层之间的流转的介绍。
缓存数据的流转包括了这样几种行为:
Flush:缓存条目向低层次移动。
Fault:从低层拷贝一个对象到高层。在获取缓存的过程中,某一层发现自己的该缓存条目已经失效,就触发了Fault行为。
Eviction:把缓存条目除去。
Expiration:失效状态。
Pinning:强制缓存条目保持在某一层。
下面的图反映了数据在各个层之间的流转,也反映了数据的生命周期: