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