http://blog.csdn.net/gtuu0123/archive/2009/12/13/4997349.aspx
Ehcache利用Terracotta方式同步缓存 收藏
1.下载并安装Terracotta
http://www.terracotta.org/
2.启动Terracotta
bin/start-tc-server.bat 或 bin/start-tc-server.sh
3.代码
Set值类:
view plaincopy to clipboardprint?
package my.test.terracotta;
import java.io.InputStream;
import my.test.ehcache1.EHCacheTest;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class TestTerracottaSet {
public TestTerracottaSet() {
InputStream is = EHCacheTest.class.getResourceAsStream("/my/test/terracotta/ehcache.xml");
CacheManager cacheManager = new CacheManager(is);
Cache cache = cacheManager.getCache("sampleTerracottaCache");
for (int i = 0; i < 1001; i++) {
cache.put(new Element("key" + i, "value" + i));
}
}
public static void main(String[] args) throws Exception {
new TestTerracottaSet();
}
}
Get值类:
view plaincopy to clipboardprint?
package my.test.terracotta;
import java.io.InputStream;
import my.test.ehcache1.EHCacheTest;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class TestTerracottaGet {
public TestTerracottaGet() {
InputStream is = EHCacheTest.class.getResourceAsStream("/my/test/terracotta/ehcache.xml");
CacheManager cacheManager = new CacheManager(is);
Cache cache = cacheManager.getCache("sampleTerracottaCache");
for (int i = 0; i < 1001; i++) {
Element elem = cache.get("key" + i);
if (elem == null) {
System.out.println("key" + i + " not found");
} else {
System.out.println("key" + i + "=" + elem.getValue());
}
}
}
public static void main(String[] args) throws Exception {
new TestTerracottaGet();
}
}
配置文件:修改官方样例配置文件,添加
view plaincopy to clipboardprint?
<terracottaConfig url="localhost:9510"/>
view plaincopy to clipboardprint?
<cache name="sampleTerracottaCache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="1800"
overflowToDisk="false">
<terracotta/>
</cache>
这是利用Terracotta服务器来进行缓存同步
4.运行
(1)先运行TestTerracottaSet类
(2)再运行TestTerracottaGet类
(3)运行结果:
key0=value0
key1=value1
key2=value2
key3=value3
key4=value4
key5=value5
key6=value6
key7=value7
key8=value8
key9=value9
key10=value10
......
key1000=value1000
可以通过Terrocotta控制台查看缓存情况,如图:
- 大小: 92 KB
分享到:
相关推荐
Terracotta通过一个中心节点管理所有缓存实例,确保数据的一致性和同步。 3. 配置Ehcache 首先,你需要在项目中添加Ehcache和Terracotta的依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml ...
3. **分布式缓存**:Ehcache支持分布式部署,通过 Terracotta Server 集群,可以在多台服务器间共享和同步缓存,提供高可用性和负载均衡。 4. **缓存策略**:除了LRU和LFU,Ehcache还提供了TTL(Time To Live)和...
2. **分布式缓存**:通过添加Terracotta服务器,Ehcache可以实现分布式缓存,让多台服务器共享同一份缓存,提高系统的可扩展性。 3. **缓存预热**:启动时预先加载一部分常用数据到缓存,减少用户等待时间。 4. **...
3. **多级缓存**:EhCache支持构建分布式缓存系统,通过Terracotta服务器实现多个节点之间的缓存共享,形成分布式缓存集群。这使得多台服务器上的应用可以共享同一份缓存,提高数据一致性并分散负载。 4. **缓存...
Ehcache 支持通过 Terracotta 平台实现集群间的缓存同步。 ### 3. Ehcache 使用 - **配置**: Ehcache 配置可以通过 XML 文件或 Java API 进行。XML 文件通常命名为 `ehcache.xml`,包含缓存的大小、过期策略等设置...
3. **共享缓存**: 当多个Ehcache客户端连接到同一Terracotta Server时,它们将共享同一份缓存数据。这意味着对缓存的任何修改都会立即同步到其他节点。 4. **故障转移**: 如果一个服务器宕机,Ehcache可以自动切换...
- 配置Ehcache以利用分布式特性,确保多个应用服务器间的缓存同步。 通过上述步骤,Ehcache 可以有效地整合到Spring环境中,实现页面和对象级别的缓存,从而显著提高应用程序的性能。同时,Ehcache的灵活性和扩展...
Ehcache可能与其他库有依赖关系,比如为了实现分布式缓存,可能需要`terracotta-apis`和`terracotta-platform`等相关JARs。这些库提供了集群和分布式缓存的支持,使得Ehcache能够在多台服务器之间共享数据,提高可...
3. **ehcache-terracotta-2.5.2.jar**:这是Ehcache与Terracotta集成的模块,使得Ehcache能够利用Terracotta的集群能力。它实现了将本地Ehcache实例与其他服务器上的Ehcache实例进行通信和同步,以创建一个分布式的...
对于监控Ehcache,我们可以利用Ehcache提供的管理工具和API来查看缓存的运行状态。Ehcache提供了JMX(Java Management Extensions)支持,允许我们通过JMX客户端工具(如jconsole或VisualVM)来监控缓存的大小、命中...
EhCache是一个开源的、高性能的Java分布式缓存系统,常...理解并熟练掌握EhCache的各项配置选项,可以帮助我们更好地利用缓存系统,优化应用性能。在实际使用中,应结合具体业务场景,合理调整配置,以达到最佳效果。
- **分布式缓存**:在分布式环境中,通过Terracotta服务器实现Ehcache的集群,共享缓存数据。 7. **最佳实践** - **缓存设计**:根据业务需求合理设计缓存策略,避免过度缓存导致资源浪费。 - **监控和调优**:...
5. 分布式特性:Ehcache支持Terracotta服务器,实现真正的分布式缓存。当数据在一台机器上更新时,其他节点会自动同步,确保数据一致性。 关于“文件转树结构”,这通常涉及到文件内容的解析和组织。在Java中,可以...
1. **Terracotta服务器**: Ehcache通过集成Terracotta服务器,可以实现跨JVM的分布式缓存,提高多节点间的缓存共享和一致性。 2. **复制策略**: 分布式缓存中,当在一个节点上添加、更新或移除元素时,这些操作可以...
在Ehcache中,RMI可以用来实现节点间的通信,同步缓存数据。以下是Ehcache实现RMI分布式缓存的基本步骤: 1. 创建Ehcache配置:定义缓存的大小、存活时间、过期时间等参数,并配置分布式缓存的设置,例如启用RMI...
Ehcache支持本地缓存、分布式缓存和 terracotta 集群模式,广泛应用于Java Web应用和企业级系统中。其主要特性包括: 1. **内存和磁盘存储**:Ehcache允许将数据存储在内存中,当内存不足时,可以自动将部分数据...
**EHcache缓存框架** EHcache是一款开源的Java缓存框架,它被广泛应用于提高应用程序的性能和响应速度,通过存储频繁访问...在实际应用中,理解并掌握其核心概念和配置方法,有助于我们有效地利用缓存,优化系统性能。
- **overflowToOffHeap**:仅在使用Ehcache企业版时有效,若设置为true,则缓存将利用非堆内存存储,从而不受Java垃圾回收机制的影响。 这些配置项为Ehcache提供了高度定制化的能力,使开发人员能够根据具体应用...
4. **缓存同步:**在分布式环境中,通过Terracotta服务器实现多个节点间的缓存同步。 **五、Java开源缓存框架分类列表** 除了EHCache,Java世界还有其他缓存框架,如: 1. **Guava Cache:**Google提供的Guava库...