我环顾四周,显然Infinispan对将数据保存到FileStore时可以存储的密钥数量有限制。我得到“太多打开文件”的例外。
我喜欢使用torquebox的想法,并且急于减少堆栈,只使用Infinispan而不是Redis。我有一个需要缓存分配数据的应用程序。这些查询的计算成本很高,需要每天重新计算(电话和其他生产力指标由呼叫中心的代理商提供)。
虽然我知道如果我至少运行了一个应用程序,缓存仍会存在,我不会运行群集。我宁愿保留缓存。有没有人遇到这个问题并有解决方法?
答案 0 :(得分:0)
我也在实时应用程序中使用infinispan
缓存。
基本上我们将数据库查询及其结果存储在缓存中,用于表格数据大小不大且数据量较小的表格。
设计它有两种方法:
将查询用作关键字,将数据用作值
当放入如此多的不同查询时,它会导致缓存中的条目过多。
使用xyz
作为键,Map
作为值(Map
包含查询作为键及其数据作为值)
只要使用密钥Map
首先检索xyz
,然后在Map
本身找到查询,就会导致在缓存中单个条目进入缓存(我称之为查询缓存)
我们正在使用第二种方法。
答案 1 :(得分:0)
是的,Infinispan的FileCacheStore曾经有过打开太多文件的问题。 5.3.x中新的SingleFileStore解决了这个问题,但看起来Torquebox仍然使用Infinispan 5.1.x(https://github.com/torquebox/torquebox/blob/master/pom.xml#L277)。