Redis может делать все, что обеспечивает Memcached (кеш LRU, срок действия элемента и теперь кластеризация в версии 3.x +, в настоящее время в бета-версии) или такими инструментами, как twemproxy. Производительность аналогична. Morever, Redis добавляет постоянство, из-за которого вам не нужно делать кеширование в случае перезапуска сервера.
Ссылка на некоторые старые ответы, которые сравнивают Redis и Memcache, некоторые из которых одобряют Redis как замену Memcache (если они уже присутствуют в стеке):
Несмотря на это, изучая стеки крупных веб-компаний, таких как Instagram, Pinterest, Twitter и т.д., я обнаружил, что они используют как Memcached, так и Redis для разных целей, не используя Redis для первичного кэширования. Основной кеш по-прежнему Memcached, а Redis используется для логического кэширования на основе структур данных.
По состоянию на 2014 год, почему memcached все еще стоит боль, которую нужно добавить как дополнительный компонент в ваш стек, когда у вас уже есть компонент Redis, который может делать все, что может memcached? Каковы благоприятные моменты, которые склоняют архитекторов/инженеров к тому, чтобы по-прежнему включать memcached, помимо уже существующего Redis?
Обновление:
Для наших платформ мы полностью отменили Memcached и использовали redis для простых и логических требований кэширования. Высоко эффективный, гибкий и надежный.
Некоторые примеры сценариев:
- Список всех кешированных ключей по определенному шаблону и чтение или удаление их значений. Очень легко в redis, не выполнимо (легко) в memcached.
- Сохраняя полезную нагрузку более 1 МБ, легко сделать в redis, требуется настройка размера плиты в memcached, которая имеет собственные побочные эффекты производительности.
- Легкие снимки текущего содержимого кеша
- Кластер Redis также готов к выпуску вместе с языковыми драйверами, поэтому кластеризованное развертывание также легко.