You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hazelcast Near Cache未按配置在60秒后失效问题求助

Hazelcast 3.12 Near Cache 过期失效问题排查方案

核心原因:懒删除机制

Hazelcast的Near Cache过期条目不会实时主动删除,采用懒删除策略:

  • 仅当你尝试访问该条目时,才会检查是否过期并移除
  • 后台清理任务(默认每10秒执行一次)会批量清理过期条目,但不会立即清空所有过期项

直接调用size()得到的数值可能包含已过期但未被清理的条目,这不代表缓存未失效。

验证方法

  1. 实际访问条目:尝试获取已过TTL的key,确认是否真的失效:
Object value = nearCachedMap.get("target-key");
// 返回null则说明条目已过期,只是未被清理出size统计
  1. 强制清理过期条目:调用API手动触发清理后再查看size:
nearCachedMap.evictExpiredEntries();
System.out.println(nearCachedMap.size()); // 此时显示的是有效条目数

可能的配置遗漏与修复

  • 确认名称匹配:确保<near-cache name="near-cache-map">中的name与你使用的Map名称完全一致(大小写敏感),否则配置不会绑定到目标Map。
  • 检查Map自身TTL:如果对应Map设置了更长的time-to-live-seconds,可能会覆盖Near Cache的配置,需确保两者过期策略一致。
  • 调整清理频率:若需要更及时的清理,可修改全局配置的清理间隔(单位:毫秒):
<hazelcast>
  <properties>
    <property name="hazelcast.map.entry.cleanup.interval">5000</property> <!-- 改为5秒执行一次清理 -->
  </properties>
</hazelcast>

其他注意点

  • local-update-policy="INVALIDATE"仅影响本地更新时的缓存失效逻辑,与TTL过期无关,当前配置无需调整。
  • 可通过Hazelcast Management Center查看Near Cache统计:在「Near Caches」页面查看Expired Count和Evicted Count,确认过期逻辑是否正常运行。

内容的提问来源于stack exchange,提问作者MustafaOmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:35:09