我计划在现有的 Web 应用程序中实施缓存解决方案。没什么复杂的:基本上是一个支持溢出到磁盘和自动驱逐的并发映射。将来可能需要对缓存进行集群,但现在不是。
我喜欢 ehcache 的 copyOnRead 和 copyOnWrite 功能,因为这意味着我不必在修改从缓存中取出的内容之前手动克隆内容。现在我已经开始研究Infinispan了,但我还没有找到任何类似的东西。它存在吗?
即,以下单元测试应该通过:
@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));
}