ehcache提供了比较成熟的缓存机制,提供多方位的入口(spring支持),特别是各种可配置的store和策略比较强大,今天简单分析下源码分享一下
数据结构:
Element:
key,value,tti(time to idle),ttl(time to live),ElementEvictionData(对象销毁的各个时间点)
Cache:
cacheManager(管理cache内部状态,生命周期,support(peerprovider,diskpath)等),
api(外部调用入口 put get remove)
store(实际的存储实现,比如MemoryStore,LRUMemoryStore,DiskStore...)
RegisteredEventListeners(注册的各种listener,根据EventType类型
private static enum Event {
EVICTED, PUT, EXPIRY, UPDATED, REMOVED;
}
事件通知,listener的作用可以有很多,例如远程同步操作达到分布式缓存的目的,同步或异步远程拷贝RMISynchronousCacheReplicator,RMIAsynchronousCacheReplicator
<