поскольку транзакции базы данных в нашем приложении занимают все больше и больше времени, мы начали использовать memcached, чтобы уменьшить количество запросов, передаваемых в MySQL.
В целом, это работает отлично и действительно экономит много времени.
Но поскольку кеширование «незаметно появлялось» как обходной путь, чтобы дать приложению больше возможностей, многие наши модели теперь содержат такой код:
def self.all_cached
Rails.cache.fetch('object_name') {
find(
:all,
:include => [associations])
}
end
Это становится все более и более болезненным, поскольку заполнение и очистка кеша происходит в нескольких классах приложения.
Теперь мне интересно, есть ли лучший способ абстрагировать логику memcached, чтобы сделать ее более мощной и простой в использовании во всех необходимых моделях?
Я думал о том, чтобы иметь какой-то модуль memcached, который включен во все необходимые модули.
Но прежде чем поиграться, я подумал: давайте сначала спросим у экспертов :-)
Спасибо
Мэтт