Apache Ignite 缓存项目级别过期

问题描述 投票:0回答:1

我有一个 Apache ignite 缓存,其键为字符串,值为布尔集和过期时间戳。我需要根据此过期时间戳从缓存中删除缓存项。如何实现这一目标?

据我所知,Ignite 允许缓存级别的缓存过期,而不是缓存项级别的缓存过期。

apache caching ignite distributed-caching apacheignite
1个回答
0
投票

是的,您是正确的,TTL 是在缓存级别设置的,并且在创建(或最后一次访问或修改,根据配置的内容)后,一旦 TTL 指定的时间过去,缓存条目就可以被清除。您可以将 EagerTtl 设置为 true https://ignite.apache.org/docs/latest/configuring-caches/expiry-policies#eager-ttl,这将为遍历缓存的任务分配一个线程搜索要清除的过期条目。但是,不能保证一旦达到 TTL,该条目就会被立即清除,因为只分配了一个线程用于此目的。否则(如果 EagerTtl=false),仅当对条目执行下一个操作时,才会清除过期条目。 除此之外,请注意,在使用本机持久性的情况下,从分区文件中删除条目不会释放磁盘空间。但是,该空间可用于写入后续条目。 https://ignite.apache.org/docs/latest/configuring-caches/expiry-policies#overview

© www.soinside.com 2019 - 2024. All rights reserved.