我查看了一下四周,显然Infinispan在将数据持久化到FileStore时对可以存储的键的数量有限制。我得到"太多打开的文件"异常。
我喜欢torquebox的想法,并急于精简堆栈,只使用Infinispan而不是Redis。我有一个应用程序,需要缓存数据分配。这些查询在计算上是昂贵的,需要每天重新计算(呼叫中心的代理的电话和其他生产力指标)。
我不运行集群,虽然我知道缓存会持续,如果我至少有一个应用程序运行。我宁愿持久化缓存。有人遇到这个问题,并有解决办法吗?
是的,Infinispan的FileCacheStore曾经有一个打开太多文件的问题。5.3中的新SingleFileStore。x解决了这个问题,但看起来Torquebox仍然使用Infinispan 5.1。x (https://github.com/torquebox/torquebox/blob/master/pom.xml L277)。
我也在一个实时应用程序中使用infinispan
缓存。
基本上,我们将数据库查询及其结果存储在不可更新的表和数据大小较小的表的缓存中。
有两种设计方法:
-
使用查询作为键,其数据作为值
当这么多不同的查询被放入缓存中时,会导致缓存中有太多的条目。
-
使用
xyz
作为键,Map
作为值(Map
包含查询作为键,其数据作为值)当需要从这个缓存(我称之为查询缓存)中获取数据时,它会导致缓存中的单个条目,首先通过使用关键字
xyz
检索Map
,然后在Map
中找到查询。
我们正在使用第二种方法