Persisting data on disk using Hazelcast

2020-07-03 07:36发布

问题:

I have installed HazelCast 2.5. I want to persist my records into disk. I learned that MapStore does this job. However i'm not sure how to implement MapStore.

Code I've written so far:

public class MyMaps implements MapStore<String,String> {

    public static Map<Integer, String> mapCustomers = Hazelcast.getMap("customers");

    public static void main(String[] args) {
        {
            mapCustomers.put(1, "Ram");
            mapCustomers.put(2, "David");
            mapCustomers.put(3, "Arun");

        }
    }
}

How do i put all these entries into disk.

Is it necessary to have a back-end like MySQL or PostgreSQL to use this class?

I believe the following function can be used:

public void delete(String arg0);
public void deleteAll(String arg0);
public void store(String arg0);
public void storeAll(String arg0);

I need a sample snippet of how to implement MapStore.

Please provide me with sample code.

回答1:

Yes, you can use MapStore and MapLoader to persist file to local storage. Read official documentation here.

https://docs.hazelcast.org/docs/latest/manual/html-single/#loading-and-storing-persistent-data



回答2:

Hazelcast has two types of distributed objects in terms of their partitioning strategies:

  • Data structures where each partition stores a part of the instance, namely partitioned data structures.

  • Data structures where a single partition stores the whole instance, namely non-partitioned data structures.

Partitioned Hazelcast data structures persistence data to local file system is not supported,need a centralized system that is accessible from all hazelcast members,like mysql or mongodb.

You can get code from hazelcast-code-samples.