2012-01-08 90 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分钟后到期的高速缓存。

相关问题