關於ehcache配置中timeToLiveSeconds和timeToIdleSeconds的區別

在使用ehcache框架時,timeToLiveSeconds和timeToIdleSeconds這兩個屬性容易混淆。(當然,只有在eternal爲false時,這2個屬性纔有效)

  • timeToLiveSeconds -->當對象自從被存放到緩存中後,如果處於緩存中的時間超過了 timeToLiveSeconds屬性值,這個對象就會過期,EHCache將把它從緩存中清除;即緩存自創建日期起能夠存活的最長時間,單位爲秒(s)
  • timeToIdleSeconds -->  當對象自從最近一次被訪問後,如果處於空閒狀態的時間超過了timeToIdleSeconds屬性值,這個對象就會過期,EHCache將把它從緩存中清空;即緩存被創建後,最後一次訪問時間到緩存失效之時,兩者之間的間隔,單位爲秒(s)

配置如下:

timeToIdleSeconds=60

timeToLiveSeconds=180

則一個數據被添加進緩存後,該數據能夠在緩存中存活的最長時間爲180秒(timeToLiveSeconds),而在180秒內,假設不止一次去緩存中拿取該數據,那麼相鄰2次獲取數據的時間間隔如果小於60秒(timeToIdleSeconds),則能成功獲取到數據,但如果最近一次獲取到下一次獲取的時間間隔超過60秒,那麼,將得到null,因爲此時該數據已經被移出緩存了。

而且,timeToLiveSeconds必須大於timeToIdleSeconds纔有意義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章