将IMCache与Web应用程序集成

时间:2015-06-30 18:02:20

标签: caching guava

我正在尝试将IMCache与Web应用程序集成。当我运行给出的示例时(添加下面的代码),JVM在成功执行代码后永远不会退出。

    OffHeapByteBufferStore bufferStore = new OffHeapByteBufferStore(8388608 ,10, 1);
    final Cache<String,String> offHeapCache = CacheBuilder.offHeapCache().storage(bufferStore)
      .cacheLoader(new CacheLoader<String, String>() {
        public String load(String key) {
            return cacheDao.load(key);
        }
    }).evictionListener(new EvictionListener<String, String>() {
        public void onEviction(String key, String value) {
            cacheDao.store(key, value);
        }
    }).build();

    for(int i = 0; i < 1000; i++){
        offHeapCache.put("key-" + i, "value - " + i);
    }  
    System.out.println(offHeapCache.get("key-" + 100));

如何将offheap缓存与我的Web应用程序集成?

1 个答案:

答案 0 :(得分:3)

Imcache使用执行程序服务来清理字节缓冲区。这实际上与垃圾收集几乎相同。

您可以在https://github.com/Cetsoft/imcache/blob/master/imcache-offheap/src/main/java/com/cetsoft/imcache/cache/offheap/OffHeapCache.java#L145

查看源代码