Hazelcast 3.6 - 地图获取元素

时间:2016-02-12 12:32:14

标签: hazelcast

我尝试使用hazelcast 3.6版本进行简单的演示。基本上我启动了控制台应用程序,然后我从客户端代码向集群添加了一个元素。

public class GettingStartedClient {

    public static void main(String[] args) {
        ClientConfig clientConfig = new  ClientConfig();
        clientConfig.addAddress("127.0.0.1:5704");
        HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);
        IMap<Integer, String> map = client.getMap("customers");
        System.out.println("Map Size:" + map.size());
        for (int i = 0; i < map.size(); i++) {
            System.out.println(map.get(i+1));
        }
        map.put(0, "Emre");

    }

}

稍后,使用命令行我切换到ns customer,然后执行m.get,m.values和m.keys命令。 m.values和m.keys返回映射中的元素,但是m.get返回null。

hazelcast[customers] > m.keys
0
Total 1

hazelcast[customers] > m.values
Emre
Total 1

hazelcast[customers] > m.get 0
null

我错过了吗?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

演示应用程序中使用的密钥不是Integer而是String。因此,为了使其工作,您的客户端代码应如下所示:

public static void main(String[] args) {
    ClientConfig clientConfig = new  ClientConfig();
    clientConfig.addAddress("127.0.0.1:5704");
    HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);
    IMap<String, String> map = client.getMap("customers");
    System.out.println("Map Size:" + map.size());
    for (int i = 0; i < map.size(); i++) {
        System.out.println(map.get(i+1));
     }

    map.put("0", "Emre");
}

您可以从github查看演示应用的源代码: https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/console/ConsoleApp.java

答案 1 :(得分:1)

Hazelcast控制台假设密钥是一个字符串,并试图找到密钥&#34; 0&#34;哪个不存在