Стратегия кэширования в приложении rails с использованием membase, как мне убедиться, что я не удаляю все? - PullRequest
0 голосов
/ 25 июля 2011

У меня есть приложение рельсов. Я использую мембрану / memcache для кэширования объектов БД и партиалов HTML.

Я кеширую объекты БД с помощью операции создания и, конечно, операций поиска и т. Д ... теперь, когда я делаю User.find (1). это кэшируется как объект в memcache. У меня есть довольно хорошая стратегия с кэшированием их вместе с контентом HTML.

Теперь, когда я развертываю, одна из вещей, которую делает мой скрипт Capistrano, - это очистить кеш (из-за изменяющихся html-частичек), но на самом деле нет причин лишать законной силы кеш объектов db.

Как я могу удалить только часть моего кэша? Можно ли это сделать?

мои ключи кеша выглядят так БД: user_find_by_id_10000 HTML: user_profile_home_1000

Буду признателен за помощь

Спасибо.

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Также неплохо было бы использовать отдельные сегменты для кеша вашей БД и кеша HTML ... тогда вы можете использовать команду flush_all, чтобы очистить весь блок, не затрагивая другой.

Кроме того, в ожидании Couchbase Server 2.0, который будет в предварительном просмотре для разработчиков в конце этой недели, вы сможете создавать индексы и представления, возвращающие только те данные, которые вы ищете, и затем вы можете кормитьэто через небольшой процесс, чтобы удалить все элементы, которые соответствуют определенным критериям.

Perry Krug Solutions Architect, Couchbase Inc.

1 голос
/ 25 июля 2011

Довольно просто удалить кэшированный элемент на основе его ключа:

Rails.cache.delete('user_profile_home_1000')

В приведенном выше коде я предполагаю, что вы установили кеш Rails для использования Memcached.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...