zoukankan      html  css  js  c++  java
  • Ehcache 使用

    自从Ehcache 到了1.2+的版本,就支持分布式缓存了

    Spring + Hibernate的结构 ,ehcache的对这几个框架的支持较好,就采用这个缓存方案

    下面是配置文件:

    <ehcache> <diskStore path="java.io.tmpdir" />

    <defaultCache maxElementsInMemory="10000"       eternal="false"    timeToIdleSeconds="120"    timeToLiveSeconds="120"    overflowToDisk="true"    maxElementsOnDisk="10000000"    diskPersistent="false"    diskExpiryThreadIntervalSeconds="120"    memoryStoreEvictionPolicy="LRU" >    </defaultCache> <cache name="smapCache"       maxElementsInMemory="10000"       eternal="false"    timeToIdleSeconds="3600"    timeToLiveSeconds="3600"    overflowToDisk="true"    maxElementsOnDisk="10000000"    diskPersistent="false"    diskExpiryThreadIntervalSeconds="120"    memoryStoreEvictionPolicy="LRU">     </cache>

    </ehcache>

    下面是分布式缓存配置

    <ehcache> <diskStore path="java.io.tmpdir" />

    <!--自动查找局域网中分布式的peer 。也可手工指定节点的地址的,如:peerDiscovery=manual,rmiUrls=//server1:40000/sampleCache1 --> <cacheManagerPeerProviderFactory    class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"    properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1, multicastGroupPort=4446" />

    <cacheManagerPeerListenerFactory    class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" />

    <defaultCache maxElementsInMemory="10000"       eternal="false"    timeToIdleSeconds="120"    timeToLiveSeconds="120"    overflowToDisk="true"    maxElementsOnDisk="10000000"    diskPersistent="false"    diskExpiryThreadIntervalSeconds="120"    memoryStoreEvictionPolicy="LRU" >    </defaultCache> <cache name="smapCache"       maxElementsInMemory="10000"       eternal="false"    timeToIdleSeconds="3600"    timeToLiveSeconds="3600"    overflowToDisk="true"    maxElementsOnDisk="10000000"    diskPersistent="false"    diskExpiryThreadIntervalSeconds="120"    memoryStoreEvictionPolicy="LRU">   <cacheEventListenerFactory          class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>    </cache>

    </ehcache>

    必须属性: name:设置缓存的名称,用于标志缓存,惟一 maxElementsInMemory:在内存中最大的对象数量 maxElementsOnDisk:在DiskStore中的最大对象数量,如为0,则没有限制 eternal:设置元素是否永久的,如果为永久,则timeout忽略 overflowToDisk:是否当memory中的数量达到限制后,保存到Disk

    可选的属性: timeToIdleSeconds:设置元素过期前的空闲时间 timeToLiveSeconds:设置元素过期前的活动时间 diskPersistent:是否disk store在虚拟机启动时持久化。默认为false diskExpiryThreadIntervalSeconds:运行disk终结线程的时间,默认为120秒 memoryStoreEvictionPolicy:策略关于Eviction

    缓存子元素: cacheEventListenerFactory:注册相应的的缓存监听类,用于处理缓存事件,如put,remove,update,和expire bootstrapCacheLoaderFactory:指定相应的BootstrapCacheLoader,用于在初始化缓存,以及自动设置。

    spring配置:

         <!-- ehcache --> <bean id="cacheManager"          class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">          <property name="configLocation"              value="classpath:ehcache.xml">          </property>      </bean>

         <bean id="smapCacheBean" class="org.springframework.cache.ehcache.EhCacheFactoryBean">          <property name="cacheManager" ref="cacheManager"></property>          <property name="cacheName" value="smapCache"></property>      </bean>

  • 相关阅读:
    前台组件
    IntelliJ IDEA 简体中文专题教程
    干货分享 | 创业公司绝对不会告诉你他们在用的工具们
    线程的基本概念 / 计算机程序的思维逻辑
    Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
    【转载】 准人工智能分享Deep Mind报告 ——AI“元强化学习”
    (待续)【转载】 DeepMind发Nature子刊:通过元强化学习重新理解多巴胺
    【转载】 机器学习算法岗的常见面试问题及准备
    【转载】 180623 Conda install 本地压缩包文件tar.bz2
    2017年 某次 实验室会议 —— 记
  • 原文地址:https://www.cnblogs.com/jirglt/p/3780175.html
Copyright © 2011-2022 走看看