我计划在现有的网络应用程序中实施缓存解决方案。没什么复杂的:基本上是一个支持溢出到磁盘和自动驱逐的并发映射。将来可能需要对缓存进行集群,但不是现在。
我喜欢 ehcache 的 copyOnRead 和 copyOnWrite 功能,因为这意味着我不必在修改从缓存中取出的内容之前手动克隆内容。现在我开始看无限跨度,但我还没有在那里找到任何等效的东西。它存在吗?
即,以下单元测试应该通过:
@Test
public void testCopyOnWrite() {
Date date = new Date(0);
cache.put(0, date);
date.setTime(1000);
date = cache.get(0);
assertEquals(0, date.getTime());
}
@Test
public void testCopyOnRead() {
Date date = new Date(0);
cache.put(0, date);
assertNotSame(cache.get(0), cache.get(0));
}
无限跨度does支持 copyOnRead/copyOnWrite,尽管实际格式不可插入。配置元素是惰性反序列化在 Infinispan 4.x 和存储为二进制在 Infinispan 5.x 中。对象使用可插入的 Marshaller 框架进行序列化,该框架用于所有形式的编组,包括通过网络的 RPC 调用和存储到磁盘。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)