Blog Post - 8. Januar 2014
Rails 4 Cache Invalidation mit Dalli und Memcached

Rails 4 Cache Invalidation mit Dalli und Memcached

Auf meiner Startseite cache ich aktuell meinen Willkommenstext für drei Stunden weil er Abfragen an eine Wetter API enthält, damit ich das jeweilige Wetter in Berlin in den Text einbauen kann. Ich möchte die API aber aus Performance und Kostengründen nicht bei jedem Load abfragen, Wetter ist ja im Allgemeinen auch über ein paar Stunden beständig.

- cache ["application_home_weather"], expires_in: 3.hours, skip_digest: true do ...

Um auf der Production-Umgebung memcached zu nutzen, muss folgende Config in der production.rb gesetzt sein:

config.action_controller.perform_caching = true config.cache_store = :mem_cache_store

Ganz wichtig ist außerdem das Gem dalli im Gemfile, damit die App mit memcached kommunizieren kann.

group :production do gem "dalli" end

Und natürlich muss auch memcached installiert werden, "apt-get install memcached". Nun wird nach drei Stunden ein aktueller Wetterstatus von der Wetter API geholt.