我想使用infinispan(7.0.2.Final)为我用java编写的服务器应用程序提供持久性。在我开始实现之前,我尝试了最简单的方案,但它没有用......
即我实现了两个简单的单元测试,我一个接一个地运行它们(即我单独运行它们)。
第一次测试只包括:
Cache<Object, Object> c = new DefaultCacheManager().getCache();
c.put("key1", "value1");
第二个:
Cache<Object, Object> c = new DefaultCacheManager().getCache();
String result = (String) c.get("key1");
但我收到了结果= null ...
我做错了什么?我阅读了infinispan页面,它应该是开箱即用的......
答案 0 :(得分:1)
此处的问题是您的配置未集群化。默认情况下,使用CacheMode = LOCAL,因此,您不能指望数据复制。
尝试在clustering()元素中设置适当的缓存模式:
http://infinispan.org/docs/7.0.x/user_guide/user_guide.html#_configuring_cache_programmatically
答案 1 :(得分:1)
似乎你期待持久性(不像@tsykora建议的那样聚集)。具有编程配置的链接是正确的,但您可能希望使用SingleFileStore(作为最简单的持久存储)。
DefaultCacheManager manager = new DefaultCacheManager();
Configuration c = new ConfigurationBuilder().persistence()
.addSingleFileStore()
.location("/tmp/myDataStore")
.maxEntries(5000);
manager.defineConfiguration("myCache", c);
Cache<Object, Object> cache = manager.getCache("myCache");
(代码未经测试,但这是个主意)。