2013-03-20 6 views
6

Od pewnego czasu borykam się, aby dowiedzieć się, czy jest jakiś domyślny czas wygasania ustalony przez Railsy, ​​na wypadek, gdybyśmy nie zapewniali jakiejkolwiek pamięci przechowującej parę klucz-wartość do memcache? np. Rails.cache.write ("jakiś klucz", "pewna wartość")Rails memcache store domyślny czas automatycznego wygaśnięcia

Czy szyny ustawią domyślnie czas wygaśnięcia, jeśli nie podano?

Odpowiedz

5

Jeśli używasz domyślnej, wbudowanej klasy MemCacheStore dostarczanej przez Rails, to nie. Nie zakłada czasu wygaśnięcia podczas tworzenia nowych wpisów pamięci podręcznej. Aby to sprawdzić, możesz read the applicable code. Sprawdza, aby zobaczyć, jeśli już przeszły opcję expires_in metody #write jak

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

a jeśli nie, to po prostu przechodzi od 0 do memcache wskazuje na brak czasu ważności. Mam nadzieję że to pomoże!

5

Jeśli używasz nowsze (i myślę, że lepiej) Dalli memcached gem, można skonfigurować go w adapter poziomie użyciu wiersza jak następuje:

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

Zobacz README o szczegółowe wyjaśnienie z opcji :expires_in. Ogólnie rzecz biorąc, myślę, że Dalli jest warta sprawdzenia czegoś więcej niż tylko tej funkcji, jest także szybsza i obsługuje nowsze funkcje uwierzytelniania, itp.

+0

Dobra rozmowa. "MemCacheStore" jest po prostu cienkim opakowaniem nad Dallim. – piersadrian

Powiązane problemy