2016-02-12 37 views
1

我试图使用hazelcast 3.6版本进行简单演示。基本上,我启动了控制台应用程序,然后从客户端代码向集群添加了一个元素。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客户端,并执行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 

我是否缺少些什么?任何帮助表示赞赏。

回答

1

Hazelcast控制台假设的关键是一个字符串,并试图寻找键“0”,这不存在

2

在演示应用中使用的关键不是整数,但字符串。所以为了使其工作,你的客户端代码应该是这样的:

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