参考了网上的一个代码写的,开始不能运行成功,最后调试可以了
recluster_ehcache_0.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=//10.1.36.100:40000/UserCache"/>
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=10.1.36.100,port=40001,socketTimeoutMillis=120000" />
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"
diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy= false, replicateRemovals= true " />
</defaultCache>
<cache name="UserCache" maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="100000" timeToLiveSeconds="100000"
overflowToDisk="false">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy= false, replicateRemovals= true " />
</cache>
</ehcache>
----------------------------------
recluster_ehcache.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=//127.0.0.1:40001/UserCache"/>
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=10.1.36.100,port=40000,socketTimeoutMillis=120000" />
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"
diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy= false, replicateRemovals= true " />
</defaultCache>
<cache name="UserCache" maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="100000" timeToLiveSeconds="100000"
overflowToDisk="false">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy= false, replicateRemovals= true " />
</cache>
</ehcache>
-------------------------------------------------------
代码:
package cache.echache.Init;
import java.net.URL;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class clustertest {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
//URL url = clustertest.class.getClassLoader().getResource("recluster_ehcache.xml");
CacheManager manager = new CacheManager("recluster_ehcache.xml");
//get Cache
Cache cache = manager.getCache("UserCache");
Thread.sleep(10000);
Element element = new Element("key1", "value1");
Element element1 = new Element("key12", "value1");
Element element2 = new Element("key13", "value1");
Element element3 = new Element("key14", "value1");
cache.put(element);
cache.put(element1);
cache.put(element2);
cache.put(element3);
System.out.println("Initial:\n"//+url.toString()
+"\n"+manager.getName()
+"\n"+cache.getName()
+" 's size = "+cache.getSize()
+"\n"+element.toString());
Element element01 = cache.get("key1");
System.out.println(element01.getValue());
Element element02 = cache.get("key12");
System.out.println(element02.getValue());
System.out.println("主机测试等待中.............");
while(true){
Thread.sleep(1000);
}
}
}
-------------------------
package cache.echache.Init;
import java.net.URL;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class clustertest0 {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
//URL url = clustertest.class.getClassLoader().getResource("recluster_ehcache.xml");
CacheManager manager = new CacheManager("recluster_ehcache_0.xml");
//get Cache
Cache cache = manager.getCache("UserCache");
Thread.sleep(10000);
/*Element element = new Element("key1", "value1");
Element element1 = new Element("key12", "value1");
Element element2 = new Element("key13", "value1");
Element element3 = new Element("key14", "value1");
cache.put(element);
cache.put(element1);
cache.put(element2);
cache.put(element3);
System.out.println("Initial:\n"//+url.toString()
+"\n"+manager.getName()
+"\n"+cache.getName()
+" 's size = "+cache.getSize()
+"\n"+element.toString()); */
/*Element element01 = cache.get("key1");
System.out.println(element01.getValue());
System.out.println("主机测试等待中............."); */
while(true){
Element element01 = cache.get("key1");
if(null!=element01){
System.out.println(element01.getValue());
}
Thread.sleep(1000);
}
}
}
分享到:
相关推荐
在这个“springmvc+ehcache简单例子”中,我们将探讨如何将两者结合使用,以实现高效的数据缓存。 首先,让我们了解一下Spring MVC。Spring MVC提供了一个分层架构,允许开发者将业务逻辑、数据访问和用户界面分离...
Ehcache支持在内存和磁盘上存储数据,并且可以配置为分布式缓存,以适应大型分布式系统的需求。由于Ehcache的高效性和易用性,它成为了许多Java开发者在构建高性能应用程序时的首选缓存库。 **Ehcache在Maven项目中...
6. **分布式缓存**:当需要在多个节点间共享缓存时,ehCache提供了分布式缓存支持。这涉及到两种主要的通信机制: - **RMI(Remote Method Invocation)**:通过Java的远程方法调用来实现节点间的通信。 - **...
它支持本地缓存、分布式缓存,并且可以持久化到磁盘,以防内存溢出或服务器重启时丢失数据。EhCache提供了一套API,可以方便地在Java应用中集成和管理缓存。 2. **Spring的缓存抽象** Spring 3.1及以上版本引入了...
在“ehcache学习的例子”中,初学者可以通过实际操作理解Ehcache的基本用法。首先,我们需要理解Ehcache的核心概念:缓存、缓存管理器、缓存区域和缓存元素。 1. 缓存:缓存是Ehcache的基本单元,存储键值对数据。...
**Ehcache简介** Ehcache是一款开源的Java缓存框架,它被广泛应用于提高应用...在`ehcache_message`这个例子中,可能包含了如何使用Ehcache处理消息缓存的示例代码,可以参考学习,理解Ehcache在实际场景中的应用。
ehcache3-samples, 关于使用 Ehcache 3,一些示例/教程 Ehcache示例这里知识库包含有关 Ehcache 3用法的...示例'basic'演示 Ehcache 3的基本配置和用法'集群'- 演示如何在Terracotta服务器上使用分布式缓存功能'jsr107'
- EhCache 是一个广泛使用的Java缓存解决方案,支持本地内存缓存和分布式缓存。 - 它提供了线程安全、可配置的缓存策略,包括LRU(Least Recently Used)和LFU(Least Frequently Used)等。 - EhCache 支持两种...
在本篇文章中,我们将探讨如何使用Ehcache实现一个集群例子,以及它的工作原理。 首先,我们来理解Ehcache的核心概念: 1. **缓存层**:Ehcache分为不同的层次,包括内存缓存、磁盘缓存和远程缓存。内存缓存提供...
Ehcache是一款高性能、易用且广泛应用于Java环境中的分布式缓存系统,它极大地提高了应用程序的性能和响应速度。在Spring框架中集成Ehcache,能够实现数据的快速访问,减轻数据库的压力,优化整体系统架构。本文将...
- 分布式配置:在多服务器环境中,可以配置Ehcache实现分布式缓存,共享同一份缓存数据。 5. 代码案例 在实际应用中,我们通常通过注解或编程方式将Ehcache与Spring框架整合。以下是一个简单的示例: ```java @...
- 如果可能,考虑使用Ehcache的分布式功能以提升大规模应用的性能。 总的来说,Ehcache-1.2.2.jar为Java开发者提供了一种高效、灵活的缓存解决方案,通过合理使用,可以显著提升应用的响应速度和整体性能。同时,...
在"ehcache (四) 以上例子综合应用代码"中,我们可以预见到博主Lastsoul将展示如何将之前讨论的Ehcache用法整合进一个实际的项目中。这可能包括设置缓存策略、配置缓存大小、定义缓存过期策略以及处理缓存的并发问题...
本文将深入探讨Ehcache作为JVM缓存和分布式缓存的角色,以及Redis作为分布式缓存的解决方案,包括其分片集群、哨兵系统、数据结构、主从复制以及避免缓存问题的策略。 首先,我们了解为什么需要使用缓存。缓存的...
Ehcache是基于内存的分布式缓存系统,支持本地缓存、分布式缓存和 terracotta 集群化缓存。它提供了一个简单易用的API,可以在Java应用程序中快速集成和使用。Ehcache的主要特点包括: 1. 高性能:Ehcache使用内存...
在上述例子中,`User`实体需要实现`Serializable`接口,以便在进程间传递时能够正确地进行序列化和反序列化。如果不这样做,当数据在集群中传输时,可能会引发序列化相关的异常。 其次,我们需要重新配置EhCache。...
EhCache是一款开源的、高性能的、内存级的分布式缓存解决方案,适用于Java应用程序。下面我们将深入探讨如何在这样的环境中配置和使用EhCache。 首先,我们需要在项目中添加EhCache的相关依赖。这通常通过在Maven或...
通过具体例子展示如何评估Web页面加载时间的减少,以此来量化缓存带来的性能提升。 #### 四、入门指南 ##### 3.1 通用缓存 介绍了如何使用Ehcache进行通用缓存操作的基础知识。 ##### 3.2 Hibernate集成 讲解了...
Ehcache 是一个广泛使用的开源Java缓存解决方案,它提供了内存和磁盘存储,以及对缓存数据的分布式管理。在高流量和数据密集型的应用中,使用缓存能够显著提高性能,减少数据库的压力。 首先,我们需要在项目中引入...