Как автоматически удалить memcache через некоторое время в Далли - PullRequest
1 голос
/ 09 января 2012

Я не уверен, что это можно сделать вообще.

Я пытаюсь настроить Далли на удаление 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» будет удален, но, видимо, нет. Итак, тест не пройден во втором утверждении. Как я могу попросить Далли истечь ключ / значение через определенное время?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2013

Поместите следующее в инициализатор session_store.rb

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

Срок действия кэша истечет через 20 минут.

0 голосов
/ 09 января 2012

Вы можете только явно удалить ключ, вызвав delete или неявно через TTL.

Это происходит с другим ключом, кроме 'test1'? Попробуйте изменить команду «add» на команду «set». Команда add является условной, она устанавливает значение только в том случае, если она еще не существует. Возможно ли, что вы уже установили этот ключ ранее (хотя вряд ли из предоставленного вами кода) без указания TTL? Если вы не указали TTL, элемент кэшируется бесконечно.

...