是否可以在二级存储器中序列化和存储缓存数据,即。在一些文件夹/文件系统中以某种形式在Hazelcast的节点上?

时间:2014-06-07 15:24:25

标签: hazelcast

我计划使用Hazelcast缓存应用程序数据。 想知道有没有办法将缓存数据序列化并存储到节点的辅助存储器中?

基本上我想在节点上的某个文件夹中序列化并存储缓存数据。因此,当我的两个节点都死亡时,最坏情况下可以恢复Web会话。

1 个答案:

答案 0 :(得分:1)

如果实现商店加载功能(在Hazelcast的配置XML文件中添加商店加载实现类名称),将为任何地图放置/删除操作调用商店加载实现。您可以在应用程序启动时使用load all,而在数据不在缓存中时将使用load(在这种情况下,它将尝试从后端实现中获取数据)。我建议您使用数据库(任何类型),而不是推出自己的基于文件的实现。

测试地图XML文件信息:

<map name="testMap">     
        <backup-count>1</backup-count>
        <eviction-policy>NONE</eviction-policy> 
        <max-size policy="cluster_wide_map_size">0</max-size>
        <eviction-percentage>25</eviction-percentage>
        <merge-policy>hz.ADD_NEW_ENTRY</merge-policy>
<!-- MapStore-Load-->
<map-store enabled="true">
<class-name>models.test.StoreLoadTestMap</class-name>
<write-delay-seconds>0</write-delay-seconds> 
</map-store>
    </map>

在您的实现类中,您需要为store,storeAll,load,loadAll,loadAllKeys,delete,deleteAll提供实现。