Ehcache分布式缓存配置
一、简介
1、从Hibernate项目发展起来,已经被Terracotta收购开发统一的缓存的解决放啊
2、持续的维护和发布中
3、标准的缓存支持(最大数配置、移除算法、磁盘持久化、重启缓存持久化)
4、分布式缓存(RMI、Jgroups、JMS)
5、集中式缓存(类似Memcached)
6、页面缓存技术(OScache)
二、Ehcahe主要配置说明
maxElementsInMemory=10000 缓存最大数目
eternal="false" 缓存是否持久
overflowToDisk="true" 是否保存到磁盘
timeToIdleSeconds="300" 多长时间不访问该缓存,ehcache就清除缓存
timeToLiveSeconds="180" 缓存的存活时间,从开始创建算起
三、缓存策略说明
1、FIFO:先进先出
2、LFU:一直以来使用最少的,缓存的元素有一个hit属性,hit值越小的将会被清除缓存
3、LRU:最近最少使用的,缓存的元素有个时间戳,当缓存容量满了,又腾不出地方来缓存新的元素的时候,那么现有缓存中时间戳离当前时间最远的元素将被清除缓存
四、分布式集群配置
ehcache提供三种网络连接策略来实现集群rmi,jgroup还有jms。这里只说rmi方式。
具体说明,配置cacheManagerPeerListenerFactory是配宿主主机配置监听程序来发现其他主机发来的同步请求配置cacheManagerPeerProviderFactory是指定除自身之外的网络群体中其他提供同步的主机列表用“|”分开不同的主机。
下面的例子的测试过程是主B缓存开启,并从名为UserCache的缓存中循环抓取键值为“key1”的元素。直到取到才退出循环。主机A缓存启动,并在名为UserCache的缓存中放入键值为“key1”的元素。显然,如果主机B取到的元素。那么就证明同步成功,也就是集群成功。所以在测试过程中先启动主机B的测试程序,在启动主机A的测试程序。
下面具体说配置文件:
1.主机A的配置文件
config/ehcache_cluster.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd">
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,rmiUrls=//192.168.1.254:40000/UserCache" />
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=192.168.1.126,port=40000,socketTimeoutMillis=120000" />
<defaultCache
maxElementsInMemory="10000"eternal="false
timeToIdleSeconds="120"timeToLiveSeconds="120"
overflowToDisk="true"diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"diskPersistent="false"
diskExpiryThreadIntervalSecon="120"
memoryStoreEvictionPolicy="LRU">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" <cacheEventListenerFactory />
<defaultCache/>
<cache name="UserCache"
maxElementsInMemory="1000"eternal="false" timeToIdleSeconds="100000"timeToLiveSeconds="100000"
overflowToDisk="false">
<cacheEventListenerFactor class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
</ehcache>
2.主机B的配置文件
与A机类似,将 cacheManagerPeerProviderFactorcacheManagerPeerListenerFactory中的IP,端口互换即可。
3.分布式主要类RMICacheReplicatorFactory属性说明
class使用net.sf.ehcache.distribution.RMICacheReplicatorFactory
这个工厂支持以下属性:
replicatePuts=true | false – 当一个新元素增加到缓存中的时候是否要复制到其他的peers。默认是true。
replicateUpdates=true | false – 当一个已经在缓存中存在的元素被覆盖时是否要进行复制。默认是true。
replicateRemovals= true | false – 当元素移除的时候是否进行复制。默认是true。
replicateAsynchronously=true | false – 复制方式是异步的指定为true时,还是同步的,指定为false时。默认是true。
replicateUpdatesViaCopy=true | false – 当一个元素被拷贝到其他的cache中时是否进行复制指定为true时为复制,默认是true。
分享到:
相关推荐
基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 ...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:...
java缓存插件ehcache的应用实例
ehcache(Java缓存框架 EhCache)
java源码:ehcache(Java缓存框架 EhCache).rar
EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。Ehcache 是一种广泛使用的开源 Java 分布式缓存。主要面向通用缓存,Java EE 和轻量级容器。它具有内存和...
ehcache(Java缓存框架 EhCache).7z
Ehcache缓存技术 Ehcache缓存技术 Ehcache缓存技术 Ehcache缓存技术 Ehcache缓存技术
16一级缓存、二级缓存、EhCache第三方缓存.md
基于Java的ehcache(Java缓存框架 EhCache).zip
基于java的ehcache(Java缓存框架 EhCache).zip
缓存 ehcache-1.3.0.rar 缓存 ehcache-1.3.0.rar 缓存 ehcache-1.3.0.rar 缓存 ehcache-1.3.0.rar
基于Java的源码-ehcache(Java缓存框架 EhCache).zip
基于Java的缓存框架Ehcache.zip
使用Java工程实现了Hibernate二级缓存(Ehcache),其中还有自己封装的一个jar包实现了简单的分页功能
Hibernate中默认的二级缓存机制ehcache案例,属性ehcache环境搭建,配置问题。
基于Java的实例源码-ehcache(Java缓存框架 EhCache).zip
基于Java的实例开发源码-ehcache(Java缓存框架 EhCache).zip