2013-03-20 1 views
6

Я некоторое время пытался узнать, есть ли время истечения срока действия по умолчанию, установленное Rails, в случае, если мы не предоставляем какое-либо время хранения пары ключ-значение в memcache? , например. Rails.cache.write ('some-key', 'some-value')Rails memcache store default auto expiration time

Может ли rails установить некоторое время истечения по умолчанию, если мы не указали?

ответ

5

Если вы используете стандартный, встроенный класс MemCacheStore, предоставляемый Rails, тогда нет. Он не будет предполагать время истечения срока действия при создании новых записей кэша. Вы можете указать read the applicable code. Он проверяет, чтобы увидеть, если вы сдали expires_in вариант метода #write как

Rails.cache.write("key", "content", expires_in: 2.hours) 

, и если у вас нет, просто переходит от 0 до MemCache указывает на отсутствие времени истечения. Надеюсь это поможет!

5

Если вы используете более новый (и я думаю, что лучше) Dalli Memcached камня, вы можете настроить его на адаптер уровне, используя строку следующий:

config.cache_store = :dalli_store, 'cache-1.example.com', 'cache-2.example.com', 
    { :namespace => NAME_OF_RAILS_APP, :expires_in => 1.day} 

Смотрите README для подробного объяснения опции :expires_in. В целом, я думаю, что Dalli стоит проверить больше, чем просто эту функцию, а также быстрее и поддерживает некоторые новые функции аутентификации и т. Д.

+0

Хороший звонок. «MemCacheStore» - это всего лишь тонкая обертка над Далли. – piersadrian

 Смежные вопросы

  • Нет связанных вопросов^_^