在hazelcast 和Java 中以编程方式设置Near Cache 验证Near 缓存是否从本地缓存返回数据

vir*_*ren 4 java distributed-caching hazelcast

我创建了一个 Hazelcast 设置,其中一个节点运行着 hazelcast 实例。我的客户端应用程序正在使用客户端配置从 Hazelcast 实例读取缓存。我想在我的客户端应用程序中实现 Near 缓存以将其用作本地缓存。你能给我一个例子,让我看看它是如何在java中使用的。我目前的代码是这样的

Hazel 铸造缓存节点

public class HazelCastNode1 {

    public static void main(String[] args) {
        Config cfg = new Config();
        HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
        Map<Integer, String> citiesMap = instance.getMap("Cities");

        for(int i = 0; i < 100000; i++){
            citiesMap.put(i, "Vienna"+i);
        }
        System.out.println("Map Size:" + citiesMap.size()); 
    }
}
Run Code Online (Sandbox Code Playgroud)

客户代码

public class ReadClient {
    public static void main(String[] args) {
        ClientConfig clientConfig = new ClientConfig();
        HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);
        IMap<Integer, String> cumap = client.getMap("Cities");
        System.out.println(cumap.size());
    }  
}
Run Code Online (Sandbox Code Playgroud)

您能否给我一个示例,我可以将其用于 Near 缓存实现。

vir*_*ren 5

嗨能够弄清楚这是代码

public class ReadClient {

    public static void main(String[] args) {

        ClientConfig clientConfig = new ClientConfig();

        NearCacheConfig ncc = clientConfig.getNearCacheConfig("Cities");
        if(ncc == null){
            ncc = new NearCacheConfig();
        }
        ncc.setCacheLocalEntries(true);
        ncc.setEvictionPolicy("LRU");
        ncc.setMaxSize(500000);
        ncc.setInvalidateOnChange(true); 
        Map<String, NearCacheConfig> nearCache =  new HashMap<String, NearCacheConfig>();
        nearCache.put("CitiesLocal", ncc);
        clientConfig.addNearCacheConfig("Cities", ncc);
          HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);

        IMap<Integer, String> cumap = client.getMap("Cities");

        System.out.println(cumap.size());
        for(int i = 0 ; i < 100; i++){
            cumap.get(1);
        }

        System.out.println(cumap.getLocalMapStats().getNearCacheStats().getHits());
        cumap = client.getMap("CitiesLocal");
        System.out.println(cumap.size());
    }

}
Run Code Online (Sandbox Code Playgroud)

但是我仍然有一个问题,如何验证近缓存是否正在返回数据,而不是每次都进行远程调用。