2024 Clojure状态调查中分享您的想法!

欢迎!有关本网站的工作原理,请参阅关于页面获取更多信息。

0投票
core.cache

看起来TTL缓存应该在命中时重置项的TTL,类似于
LRU缓存中的命中会增加项的新鲜度,然而在检查代码时,它实际上是一个无操作。这是故意的吗?

我已经有一个修复分支,如果你不认为是故意的,或者我可以按正规流程提交补丁。

如果是故意的,那么所有缓存的重命中行为应该是无操作吗?即,某个命中有时会延长项的生命周期(LRU缓存),而有时不会(TTL缓存)

1 答案

0投票

TTL是绝对时间,从项插入时开始计算。缓存查找(命中)不应影响TTL项的生存期。如果缓存有2秒的TTL,你插入X然后反复查找它,它仍然应该2秒后过期。

TTL缓存旨在不断刷新,以确保没有任何项在刷新之前会超过TTL时间“过期”。

好吧,我只是在查找时重新进行`关联`(我现在就是这样做的)。感谢你的回复和澄清!
...