Основы работы с Memcached - Presentation Transcript
Основы работы с memcached в
Rails
Илья Заяц
Санкт-Петербург, 2009
Что же такое memcached?
Хеш в оперативной памяти,
доступный по сети
А мне оно надо?
Надо, если:
• у вас больше одного rails-процесса
• надоело «руками» чистить кеш
• есть желание в будущем все легко
и быстро масштабировать
Да, у меня есть там пара
рельсовых инстансов, и что?
Сервер
Rails Rails Rails
Кеш Кеш Кеш
Все устраивает?
Да, у меня есть там пара
рельсовых инстансов, и что?
Сервер
Rails Rails Rails
memcached
Вот теперь хорошо!
Хорошо, а как с этим работать?
1. Установка
sudo apt-get install memcached
Darwin ports
Source
memcached.exe ;)
2. Настройка
config.cache_store = :mem_cache_store
config.cache_store = :mem_cache_store, { :namespace => 'awesome_app' }
А что в коде-то писать?
Rails.cache.write('answer', 42)
Rails.cache.read('answer')
Rails.cache.write('question', Question.first)
Rails.cache.write('answer', 42, :expires_in => 15.minutes)
Rails.cache.fetch('answer') {42}
И как потом это все чистить?
1. Никто не отменял «ручной» чистки:
Rails.cache.delete(‘answer’)
2. Параметр :expires_in
3. «Умные ключи»
<% cache(answer) do %> => ‘/views/answers/1-20090524184826’
<% cache([question, answer]) do %> =>
‘/views/questions/1-20081124132654/answers/1-20090524184826’
И поможет?
1. Бенчмарки
New Relic, Rack::Bug
2. Мониторирование нагрузки в production
Спасибо за внимание!
Заяц Илья
somebody32@gmail.com
Главный разработчик Планария (planary.ru)
0 comments
Post a comment