参数:
overflowToDisk="true" 当为true时会持久化到硬盘,并非超出内存最大数时才会
diskPersistent="true" 当为false时,manager.shutdown()时会清空硬盘文件,下次启动时不会读取。为true时,manager.shutdown()时会保留硬盘文件,下次启动会读取。
当缓存为可持久化时,会用到这个工具
net.sf.ehcache.store.disk.DiskStorageFactory
protected DiskMarker write(Element element) throws IOException
protected Element read(DiskMarker marker) throws IOException, ClassNotFoundException
写的时候,put内存成功后,比如当前硬盘文件为空,则data文件的末尾position=0,element序列化后,用java.io.RandomAccessFile把内容异步写进硬盘。同时内存中data文件的末尾position+内容的size,而本element的position和size将会在内存中记录。如果不为空,则从内存中读出当前的data文件的末尾position来用。
data文件的末尾position这个值,他维护了一棵所有position组成的AA树。从这个树里找到最大的返回。我没看明白这个树有什么毛用,可能是为了以后的功能而预先写在这里的吧。也许在更高的版本里就有用了
当manager.shutdown()时,先生成一个XXX.index文件,把内存中记录的所有element的position和size都写进这个文件里。同时data文件的末尾position也会写进去。
当启动的时候,首先会把XXX.index里的内存全部加进内存,这相当于一个索引嘛。
当你get key='asd'时,先看索引里有没有asd,没有则不查硬盘data,有则先看内存中有无本element,有则取出返回,没有则取出其position和size,把data中的相应内容读出。先缓存到内存,再return.
我那天在网上看到有些朋友想用ehcache代替nosql,看了我上面的文章后,你不要再做这事了。这两种东西完全不是一个级别的东西。ehcache就是个缓存,没啥安全措施等数据库要有的特性。也存不了特大的文件。
分享到:
相关推荐
1.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的web-inf/lib目录下 2.将以下配置copy的ehcache.xml文件的ehcache标签中,注:上述链接中说的配置少写了个probe包名...
具有集群支持的 Ehcache 3(ehcache-clustered-3.8.1-kit.zip)
Mybatis-ehcache 1.2.1源码(ehcache-cache-mybatis-ehcache-1.2.1.tar.gz)
Mybatis-ehcache 1.2.1源码(ehcache-cache-mybatis-ehcache-1.2.1.zip)
ehcache所需的ehcache-core-2.5.2.jar及其源码ehcache-core-2.5.2-sources.jar
ehcache1.6,ehcache-web-2.0.4,slf4j-api-1.7.21.jar 不好意思,缺点分用。。
ehcache-core-2.6.10.jar依赖包 MyBatiesEhCache二级缓存 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个...
赠送jar包:ehcache-web-2.0.4.jar; 赠送原API文档:ehcache-web-2.0.4-javadoc.jar; 赠送源代码:ehcache-web-2.0.4-sources.jar; 赠送Maven依赖信息文件:ehcache-web-2.0.4.pom; 包含翻译后的API文档:...
赠送jar包:ehcache-core-2.6.11.jar; 赠送原API文档:ehcache-core-2.6.11-javadoc.jar; 赠送源代码:ehcache-core-2.6.11-sources.jar; 赠送Maven依赖信息文件:ehcache-core-2.6.11.pom; 包含翻译后的API文档...
ehcache-2.7.3-distribution.tar.gz
赠送jar包:ehcache-3.9.9.jar; 赠送原API文档:ehcache-3.9.9-javadoc.jar; 赠送源代码:ehcache-3.9.9-sources.jar; 赠送Maven依赖信息文件:ehcache-3.9.9.pom; 包含翻译后的API文档:ehcache-3.9.9-javadoc-...
赠送jar包:ehcache-core-2.6.11.jar; 赠送原API文档:ehcache-core-2.6.11-javadoc.jar; 赠送源代码:ehcache-core-2.6.11-sources.jar; 赠送Maven依赖信息文件:ehcache-core-2.6.11.pom; 包含翻译后的API文档...
赠送jar包:shiro-ehcache-1.4.0.jar; 赠送原API文档:shiro-ehcache-1.4.0-javadoc.jar; 赠送源代码:shiro-ehcache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-ehcache-1.4.0.pom; 包含翻译后的API文档...
用于ehcache-core-ee-2.4.1 企业级功能。比如ehcache的offheapsize设置
Ehcache 2.10.8(bigmemory-max-4.3.8.4.2.tar.gz)
ehcache缓存jar(ehcache-core-2.4.6.jar+ehcache-web-2.0.4.jar)
ehcache-spring-annotations-1.2.0.jar
含有 三个版本:ehcache-core-2.6.11 ;ehcache-core-2.6.9;ehcache-core-2.5.0
赠送jar包:ehcache-web-2.0.4.jar; 赠送原API文档:ehcache-web-2.0.4-javadoc.jar; 赠送源代码:ehcache-web-2.0.4-sources.jar; 赠送Maven依赖信息文件:ehcache-web-2.0.4.pom; 包含翻译后的API文档:...
ehcache-spring-annotations-1.1.2.jar