当前位置: 首页 > 知识库问答 >
问题:

Infinispan数据逐出

唐骏祥
2023-03-14

我使用infinispan缓存版本5.1.6。FINA。我已经配置了命名缓存:

<namedCache name="cacheName">
    <locking lockAcquisitionTimeout="5000" />
    <eviction maxEntries="10" strategy="NONE" />
    <expiration lifespan="-1" maxIdle="-1" />
</namedCache>

我用它来只在内存中存储一些数据。我在创建缓存时使用此配置,其中key是Long,value是String,并且只保留4个元素总是只有4个。为此,我硬编码了4个键:1L、2L、3L、4L,有时只是更改这些元素的值。

如果缓存包含键为1L和2L的两个元素以及一些值,并且我尝试将另外两个元素与他的值相加,那么它们会相互重放。因此,缓存只保存键为1L、2L、3L或1L、2L、4L的3个元素。我曾试图改变驱逐策略,但没有帮助。此外,我可以说这是本地环境,非集群。

有人能给我解释一下这种行为吗?

共有1个答案

刘向阳
2023-03-14

如果您的maxEntries=10,我希望缓存中会有±8个条目,而不仅仅是3个。但一般来说,答案是:

  • 缓存的条目数从未达到配置的maxEntries,为什么
  • 高级逐出内部(此处也有描述)
 类似资料:
  • 我计划使用infinispan作为我的Hibernate应用程序二级缓存。My all entities具有生命周期属性[新建- 简单地说,当实体生命周期属性状态到达已完成状态时,我想从缓存中驱逐实体。据我所知,Infinispan不支持自定义驱逐策略。处理我的情况的最佳方式是什么?

  • 考虑一个Infinispan缓存(版本5.3.0。最终),它具有以下属性, 有文件存储 钝化设置为true。 在理解缓存行为时,我有以下问题。 是否有两个线程用于逐出和过期 当过期线程运行时,文件中的条目会发生什么情况,但这些条目已过期?这些是否加载回内存并删除 这些线程运行的持续时间是多少 文件存储文件是否为仅附加文件 文件在此Infinispan版本中是否有索引 在这个Infinispan版本

  • 我试图使用infinispan实现以下目标:-群集中的n个JVM实例-在一个节点和其余节点之间复制的所有数据-由文件系统备份的数据,节点可以从本地文件存储中恢复这些数据-我希望一些特定的数据以异步方式持久化在数据库(sql)中,但首先要同步写入文件系统,一旦事务被提交,然后触发对sql数据库的异步持久性 什么是不清楚的从留档,似乎我将不得不自己做的一切-和infinispan只是给我jgroup集

  • Infinispan 是个开源的数据网格平台。它公开了一个简单的数据结构(一个Cache)来存储对象。虽然可以在本地模式下运行Infinspan,但其真正的价值在于分布 式,在这种模式下,Infinispan可以将集群缓存起来并公开大容量的堆内存。这可比简单的复制强大的多,因为它会为每个结点分配固定数量的副本——服 务器故障的一种恢复手段——同时还提升了可伸缩性,这是由于存储每个结点所需的工作量是与集群

  • 我想知道是否可以使用Infinispan与Oracle数据库进行缓存数据同步。这是我的场景。我有两个主要的应用程序。一个是高度并发使用的应用程序,另一个用作管理模块。由于它是高度并发的,我希望减少数据库连接(将实体加载到缓存(读写启用)中,并在不调用数据库的情况下从此处使用它)。但同时我想根据缓存的变化更新数据库,因为管理模块直接使用数据库。那个更新过程(缓存到数据库)能在实体级处理而不涉及应用程

  • 请注意,当前版本还处于预览版,请慎重在生产环境中使用 翻译:Ranger Tsao,校对 宋子豪、赵亮 InfinispanClusterManager 是基于 Infinispan 实现。由于 Vert.x 集群管理的可插拔性,也可轻易切换至其它的集群管理器。 InfinispanClusterManager 在组件 vertx-infinispan 中,通过构建工具可以轻松引入: Maven(