开心一笑: 会买水果的狗狗

    关注微信公众号

    QQ群:831045818

    app下载

    当前位置:首页> java > 技术文档 > 正文
    ehcache
    发布时间:2021-11-22 16:41:08.0 浏览次数:
    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache name="orientsec" updateCheck="false">
    
        <!-- 磁盘缓存位置 -->
        <diskStore path="java.io.tmpdir"/>
        
        <!-- maxEntriesLocalHeap:堆内存中最大缓存对象数,0没有限制 -->
        <!-- maxElementsInMemory: 在内存中缓存的element的最大数目。-->
    <!--    maxElementsOnDisk 在硬盘上最大的对象个数, 硬盘管理的缓存元素数量最大限值。默认值为0,就是没有限制-->
        <!-- eternal:elements是否永久有效,如果为true,timeouts将被忽略,element将永不过期 -->
        <!-- timeToIdleSeconds:失效前的空闲秒数,当eternal为false时,这个属性才有效,0为不限制 -->
        <!-- timeToLiveSeconds:失效前的存活秒数,创建时间到失效时间的间隔为存活时间,当eternal为false时,这个属性才有效,0为不限制 -->
        <!-- overflowToDisk: 如果内存中数据超过内存限制,是否要缓存到磁盘上 -->
        <!-- statistics:是否收集统计信息。如果需要监控缓存使用情况,应该打开这个选项。默认为关闭(统计会影响性能)。设置statistics="true"开启统计 -->
        <!--    diskPersistent:是否在VM重启时存储硬盘的缓存数据。默认值是false。 -->
        
        <!-- 默认缓存 -->
        <defaultCache
                maxEntriesLocalHeap="1000"
                eternal="false"
                timeToIdleSeconds="3600"
                timeToLiveSeconds="3600"
                overflowToDisk="false">
        </defaultCache>
    
        <!-- 内容访问统计 -->
        <cache name="ContentCount"
               maxElementsInMemory="1000"
               maxElementsOnDisk="1000"
               eternal="false"
               overflowToDisk="true"
               timeToIdleSeconds="0"
               timeToLiveSeconds="0">
        </cache>
    
    </ehcache>

    name: 缓存的名称。
    maxElementsInMemory: 缓存中最大元素个数。0表示不限制
    eternal: 对象是否永久有效,一但设置了,timeout将不起作用,元素永久存在。
    clearOnFlush: 内存数量最大时是否清除。
    timeToIdleSeconds : 设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
    timeToLiveSeconds: 设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大。
    diskExpiryThreadIntervalSeconds: 磁盘失效线程运行时间间隔,默认是120秒。
    diskPersistent: 是否在VM重启时存储硬盘的缓存数据。默认值是false。
    maxElementsOnDisk: 硬盘最大缓存个数。
    overflowToDisk: 当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。
    diskSpoolBufferSizeMB: 这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
    maxEntriesLocalDisk: 当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。
    memoryStoreEvictionPolicy: 当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。


    现在假设有如下配置:

    timeToIdleSeconds=60

    timeToLiveSeconds=180

    则一个数据被添加进缓存后,该数据能够在缓存中存活的最长时间为180秒(timeToLiveSeconds),而在180秒内,假设不止一次去缓存中拿取该数据,那么相邻2次获取数据的时间间隔如果小于60秒(timeToIdleSeconds),则能成功获取到数据,但如果最近一次获取到下一次获取的时间间隔超过60秒,那么,将得到null,因为此时该数据已经被移出缓存了。

    而且,timeToLiveSeconds必须大于timeToIdleSeconds才有意义。


    关注"都市百货" 了解南陵

    微信咨询wanglf2r(不拉群 发广告者勿加)

    0
    0
    上一篇:南陵籍山镇有序推进3-11岁人群接种新冠病毒疫苗 上一篇:安徽财经大学工商管理学院部分人员莅临南陵中学

    评论已有0

    提交评论

    热门评论

    南陵新闻
    公示公告
    常用查询
    风光南陵
    走出南陵
    友情链接