2012-01-08 52 views
1

我不確定這是否可以完成。如何在Dalli中的某段時間後自動刪除memcache

我正在嘗試設置達利在3秒後刪除內存緩存(只是爲了實驗)

 

    dalli = Dalli::Client.new 
    dalli.add("test1","value", 3) 
    dalli.get("test1").should eql "value" 

    sleep(10) 
    dalli.get("test1").should eql nil 

 

在代碼中,我已經設置TTL 3秒鐘,然後我希望在3秒後「test1」將被刪除,但顯然不是。所以,測試在第二個斷言中失敗。我怎麼能要求Dalli在一段時間後過期?

非常感謝。

+0

你可以在telnet客戶端中重現這個嗎? – 2012-01-08 21:26:28

回答

0

您只能通過調用delete或通過TTL隱式刪除鍵。

除了'test1'之外,這是否會發生其他關鍵?嘗試將「添加」命令更改爲「設置」命令。 add命令是有條件的,它只設置如果不存在的值。沒有指定TTL,是否有可能先前已經設置了該密鑰(儘管不太可能來自您提供的代碼)?如果您沒有指定TTL,則該項目將無限期地緩存。

+0

「集」做的伎倆。非常感謝。 – toy 2012-01-08 21:57:19

0

把下面的你session_store.rb初始化

Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 20.minutes

這將在20分鐘後到期的高速緩存。

相關問題