Terracotta timeToIdleSeconds vs timeToLiveSeconds

时间:2014-02-06 23:28:00

标签: caching ehcache terracotta

所有

这是我对这两个要素的理解,我想澄清一下。

timeToIdleSeconds =如果一个对象空闲超过X秒,它将被驱逐。

来自文档

  

如果客户端访问myCache中已闲置更多的元素   超过一小时(timeToIdleSeconds),它驱逐该元素。元素   也被赶出兵马俑服务器阵列。

如果再次请求缓存中的对象,它是否会被驱逐?缓存大小限制是否是清除未再次请求的缓存对象的唯一方法?

timeToLiveSeconds =如果对象被缓存超过X秒,则该对象将被驱逐。这与timeToIdleSeconds的工作方式相同吗?只在再次要求时才被驱逐?或者这会被后台进程清理干净吗?

由于

1 个答案:

答案 0 :(得分:0)

对于你的最后一个问题:“或者这会被后台程序清理干净吗?”

http://terracotta.org/apidocs/terracotta-toolkit/3.2.0/org/terracotta/cache/CacheConfig.html

setMaxTTISeconds和setMaxTTLSeconds中的

具有:

“背景逐出线程的睡眠间隔基于此值和最大TTL,因此更改此值的副作用是更改逐出线程的睡眠间隔。”

我假设不同版本的兵马俑会相似;我相信会有一个后台线程进行清理。

如果这是正确的,那么似乎暗示不需要请求来触发驱逐,这与您引用的文档有些相反。