0

我在 Hazelcast 2.1 和 Spring 3.1 中使用 Spring @Cacheable 注释。

@Cacheable("testCache")
public MyObject testMethod(int testParam);

//After method call
MyObject test = Hazelcast.getMap("testCache").get("key")
test.setSomeProp()   //This line causes an update to the cache since it is reference.

是否可以从映射返回缓存值的克隆/副本,而不是从Hazelcast.getMap()引用 ?

即我想要一个像 EhCache 中的 copyOnRead 功能。请参阅EhCache 文档

4

1 回答 1

2

如果您不使用近缓存并禁用缓存值。前任:

 <hz:map name="map"
            backup-count="1"
            max-size="0"
            read-backup-data="true"
            cache-value="false"/>

那么 Hazelcast 无论如何都会返回实际值的副本。

如果您保持 cache-value = true ,那么 Hazelcast 将缓存该值的对象版本,并在本地读取时返回相同的副本。本地读取是指启动读取的成员并且密钥的所有者是相同的。

于 2012-05-09T09:12:34.387 回答