-1
我在scala上使用Hazelcast「3.6.3」2.11.8Hazelcast項目的絕對期滿
我寫了這段代碼。
val config = new Config("mycluster")
config.getNetworkConfig.getJoin.getMultcastConfig.setEnabled(false)
config.getNetworkConfig.getJoin.getMulticastConfig.setEnabled(false)
config.getNetworkConfig.getJoin.getAwsConfig.setEnabled(false)
config.getNetworkConfig.getJoin.getTcpIpConfig.setMembers(...)
config.getNetworkConfig.getJoin.getTcpIpConfig.setEnabled(true)
val hc = Hazelcast.newHazelcastInstance(config)
hc.getConfig.addMapConfig(new MapConfig()
.setName("foo")
.setBackupCount(1)
.setTimeToLiveSeconds(3600)
.setAsyncBackupCount(1)
.setInMemoryFormat(InMemoryFormat.BINARY)
.setMaxSizeConfig(new MaxSizeConfig(1, MaxSizePolicy.USED_HEAP_SIZE))
)
hc.putValue[(String, Int)]("foo", "1", ("foo", 10))
我注意到,當1個小時以上hazelcast不會從緩存中刪除的項目。這些物品似乎永遠存在於緩存中。
我不想滑動到期。我想要絕對到期,這意味着1小時後無論在一小時內訪問了多少次,該項目都必須被踢出。
我已經完成了所需的谷歌搜索,我認爲我上面的代碼是正確的。但是當我查看我的服務器日誌時,我確信沒有任何內容從緩存中刪除。
我更新了代碼。現在應該更清楚了。 –
好的,只需更改設置配置和啓動節點的順序即可。 Hazelcast atm不支持您正在嘗試執行的操作。在啓動節點後,您正在更新配置。 –
config.addMapConfig(新的MapConfig()....應該在val之前hc = Hazelcast.newHazelcastInstance(config) –