0

如何将一组哈希图插入缓存?

执行以下代码后,我得到了以下异常。

net.sf.jsr107cache.CacheException: Could not find class: 'ri.cache.BasicCacheFactory'
at net.sf.jsr107cache.CacheManager.getCacheFactory(CacheManager.java:46)
at InsertIntoCACHE.main(InsertIntoCACHE.java:17)

我想用字符串作为键插入一个哈希图作为值。非常感谢任何帮助

import java.io.IOException;
import java.util.HashMap;
import java.util.Collections;
import net.sf.jsr107cache.Cache;
import net.sf.jsr107cache.CacheException;
import net.sf.jsr107cache.CacheFactory;
import net.sf.jsr107cache.CacheManager;

public class InsertIntoCACHE {
    public static void main(String[] args) throws IOException {
       Cache cache;

       try {
          CacheFactory cacheFactory = CacheManager.getInstance().getCacheFactory();
          cache = cacheFactory.createCache(Collections.emptyMap());
          String key="21";      
          byte[] value=("Twenty One").getBytes();    
          cache.put(key, value);
          value = (byte[]) cache.get(key);
          System.out.println(value);
      } catch (CacheException e) {
          e.printStackTrace();
      }
   }
}  
4

2 回答 2

0

我建议使用imcache。您可以按如下方式构造缓存,

Cache<String, String> cache = CacheBuilder.concurrentHeapCache().build();
于 2014-06-14T01:30:03.833 回答
0

JSR107 不是缓存,而是 API。您需要一个为其提供实现的具体缓存产品。我希望所有主要的缓存产品都会提供它。由于 JSR107 几个月前已经定稿,可能需要一段时间才能出现。一般来说,看看缓存产品,如 EHCache、Infinispan、Hazelcast、imcache 和 cache2k,然后决定使用其中一个。

于 2014-06-14T06:27:57.190 回答