首页 > 代码库 > EHcache缓存写入内存和硬盘机制
EHcache缓存写入内存和硬盘机制
Ehcache是用于配置管理缓存的一个缓存框架,我们从它的ehcache.xml文件中分析,它是如何将数据插入内存和硬盘中。
<?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="500" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="1200" overflowToDisk="true" /> <cache name="testcache" maxElementsInMemory="150" eternal="false" timeToLiveSeconds="36000" timeToIdleSeconds="3600" overflowToDisk="true"/> </ehcache>
上面的
<diskStore path="java.io.tmpdir" />就是配置缓存存入硬盘的路径,它指向操作系统的一个临时文件存放路径,可以通过System.getProperty("java.io.tmpdir")获取路径信息。
maxElementsInMemory=500这个是配置内存最大对象数的
overflowToDisk="true"当超过500时它就会存入硬盘中配置好的路径下面。
可以写段代码改变循环次数:100,400,2000测试,观察目录下面是否有文件生成:
package com.xxinfo.ylzcache; import org.apache.log4j.Logger; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; public class EhcacheTest { private static final Logger logger = Logger.getLogger(EhcacheTest.class); private static Cache sampleCache = null; public static void main(String[] args) { init(); test(); } private static void test() { logger.info(sampleCache.getMemoryStoreEvictionPolicy()); for(int i=0; i<2000; i++){ //写入缓存 sampleCache.put(new Element(i, "v" + i)); //打印当前缓存的所有值 logger.info(sampleCache.getKeys()); //读取缓存 Element e = sampleCache.get(i); logger.info(e.getValue()); } //打印命中统计 logger.info(sampleCache.getStatistics()); CacheManager.getInstance().shutdown() ; } private static void init() { CacheManager manager = CacheManager.create(); sampleCache = manager.getCache("testcache"); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。