Ruby 如何在Dalli中一段时间后自动删除memcache

Ruby 如何在Dalli中一段时间后自动删除memcache,ruby,memcached,dalli,Ruby,Memcached,Dalli,我不确定这是否能做到 我试图设置Dalli在3秒钟后删除memcache(只是为了实验) 在代码中,我将TTL设置为3秒,然后我希望在3秒后“test1”会被删除,但显然不会。因此,测试在第二个断言中失败。我如何让Dalli在一定时间后使密钥/值过期 非常感谢。您只能通过调用delete或通过TTL隐式删除密钥 除了“test1”之外,是否使用其他键发生这种情况?尝试将“添加”命令更改为“设置”命令。add命令是有条件的,它仅在不存在时设置值。您是否可能已经在没有指定TTL的情况下设置了该键(尽

我不确定这是否能做到

我试图设置Dalli在3秒钟后删除memcache(只是为了实验)

在代码中,我将TTL设置为3秒,然后我希望在3秒后“test1”会被删除,但显然不会。因此,测试在第二个断言中失败。我如何让Dalli在一定时间后使密钥/值过期


非常感谢。

您只能通过调用delete或通过TTL隐式删除密钥


除了“test1”之外,是否使用其他键发生这种情况?尝试将“添加”命令更改为“设置”命令。add命令是有条件的,它仅在不存在时设置值。您是否可能已经在没有指定TTL的情况下设置了该键(尽管从您提供的代码来看不太可能)?如果未指定TTL,则项目将无限期缓存。

将以下内容放入会话\u store.rb初始值设定项中

Rails.application.config.session\u store ActionDispatch::session::CacheStore,:过期时间=>20分钟


这将在20分钟后使缓存过期

你能在telnet客户端上复制这个吗?

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

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