2014-11-20 4 views
8

В настоящее время я использую Redis в качестве рабочей очереди для Sidekiq. Мне также интересно использовать его как механизм кэширования для Rails.cache.Memcached vs Redis as Rails.cache, когда требуется кеш LRU

Рекомендуемый механизм кеширования Rails никогда не истекает, и полагается на выселение наименее недавно использованного (LRU) элемента. К сожалению, Redis по умолчанию не настроен на вытеснение наименее недавно используемого элемента, в то время как рекомендуемый кэш-хранилище memcached.

Кроме того, выселение элементов не является поведением, которое я бы хотел для своей рабочей очереди, и настройка того же экземпляра Redis для этого может привести к нежелательным результатам. Я также не хочу, чтобы моя очередь делилась циклами с моим кешем.

Что бы вы посоветовали в этой ситуации? Второе хранилище redis для работы в качестве кеша и настройка LRU? Или просто используйте рекомендуемые рельсы memcached cache store и используйте только redis для очереди?

Я склоняюсь к использованию как Redis, так и Memcached, несмотря на множество статей переполнения стека, рекомендующих в противном случае. memcached, поддерживающий выселение LRU по умолчанию, является тем, что меня побеждает.

Некоторые статьи:

Hidden глубже в комментариях, плакаты отметить, что Memcached в LRU выселении как отличный повод, чтобы использовать его в качестве кэш-памяти.

ответ

2

Закончено с использованием как redis, так и memcached. Доволен результатами.

1

Главное отличие заключается в том, что Memcached может работать в параллельных ядрах/машинах, но Redis настолько легкий и быстрый, что требуется большая нагрузка, чтобы достичь своего предела, если он работает на достойной машине, где он использует только пару ядра, так как он работает, чтобы использовать оба для вас, это здорово, но это звучит как ненужная сложность для использования обоих, вот и все. (т. е. если вам нужны контрагенты для работы над ним и т. д., вам нужен кто-то, у кого есть опыт работы в обеих технологиях, а не только один).

+0

Вам нужно два отдельных развертывания независимо от того, переходите ли вы все или используете оба memcached и redis. Вы не хотите, чтобы ваше кэширование повлияло на вашу очередь и наоборот. Увидев, как memcached работает из коробки для кэширования LRU, а redis - нет, я считаю, что проще использовать две разные технологии. У меня не было проблем с обслуживанием, между которыми, но, возможно, я еще не в том масштабе, где это имеет значение. – dimroc

+0

http://stackoverflow.com/a/3080771/639773 – dimroc

Смежные вопросы