Java分布式缓存系统Ehcache,可以有效地减轻数据库的读写负担,提高Web系统的吞吐率。本文介绍的Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样也可以帮助你实现分布式缓存的部署。
Cacheonix的特点如下所示:
可靠的分布式 Java 缓存
通过复制实现高可用性
支持泛型的缓存 API
可与 ORM 框架集成
支持非多播网络
使用数据分区实现负载均衡
快速的本地 Java 缓存
高性能计算
分布式锁机制
Cacheonix的架构图
如下所示:
Cacheonix分布式缓存XML配置
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cacheonix.com/schema/configuration http://www.cacheonix.com/schema/cacheonix-config-2.0.xsd">
Cacheonix缓存的存取
从配置中获取Cacheonix实例
/**
* Tester for CacheManager.
*/
public final class CacheonixTest extends TestCase {
private Cacheonix cacheonix;
/**
* Tests getting an instance of CacheManager using a default Cacheonix configuration.
*/
public void testGetInstance() {
assertNotNull("Cacheonix created in setUp() method should not be null", cacheonix);
}
/**
* Sets up the fixture. This method is called before a test is executed.
*
* Cacheonix receives the default configuration from a cacheonix-config.xml found in a class path or
* using a file that name is defined by system parameter cacheonix.config.xml.
*/
protected void setUp() throws Exception {
super.setUp();
// Get Cacheonix using a default Cacheonix configuration. The configuration
// is stored in the conf/cacheonix-config.xml
cacheonix = Cacheonix.getInstance();
}
/**
* Tears down the fixture. This method is called after a test is executed.
*/
protected void tearDown() throws Exception {
// Cache manager has be be shutdown upon application exit.
// Note that call to shutdown() here uses unregisterSingleton
// set to true. This is necessary to support clean restart on setUp()
cacheonix.shutdown(ShutdownMode.GRACEFUL_SHUTDOWN, true);
cacheonix = null;
super.tearDown();
}
}
读取缓存
Cacheonix cacheonix = Cacheonix.getInstance();
Cache cache = cacheonix.getCache("my.cache");
String cachedValue = cache.get("my.key");
删除缓存
Cacheonix cacheonix = Cacheonix.getInstance();
Cache cache = cacheonix.getCache("my.cache");
String removedValue = cache.remove("my.key");
设置缓存
Cacheonix cacheonix = Cacheonix.getInstance();
Cache cache = cacheonix.getCache("my.cache");
String replacedValue = cache.put("my.key", "my.value");
Cacheonix作为一款开源的分布式缓存框架,可以满足中型企业规模的系统架构,对提升系统性能有非常棒的作用。