Для кеширования мы используем веб-приложение Ruby с сервером Redis . Есть ли смысл вместо этого проверять Memcached ?
Что даст нам лучшую производительность? Есть ли плюсы или минусы между Redis и Memcached?
Вопросы для рассмотрения:
- Скорость чтения / записи.
- Использование памяти.
- Дамп ввода-вывода дамп.
- Масштабирование.
caching
web-applications
memcached
redis
Сагив Офек
источник
источник
Ответы:
Резюме (TL; DR)
Обновлено 3 июня 2017 года
Redis более мощный, более популярный и лучше поддерживается, чем memcached. Memcached может делать лишь небольшую часть того, что может делать Redis. Redis лучше даже там, где их функции перекрываются.
Для всего нового используйте Redis.
Memcached против Redis: прямое сравнение
Оба инструмента являются мощными, быстрыми хранилищами данных в памяти, которые полезны в качестве кэша. Оба могут помочь ускорить ваше приложение, кэшируя результаты базы данных, фрагменты HTML или что-либо еще, что может быть дорого генерировать.
Вопросы для рассмотрения
Когда они используются для того же, вот как они сравнивают, используя оригинальный вопрос «Вопросы для рассмотрения»:
Memcached
Memcached - это простой энергозависимый кеш-сервер. Это позволяет хранить пары ключ / значение, где значение ограничено длиной до 1 МБ.
Это хорошо, но это все, что он делает. Вы можете получить доступ к этим значениям по их ключу на очень высокой скорости, часто насыщая доступную сеть или даже пропускную способность памяти.
При перезапуске memcached ваши данные исчезли. Это хорошо для кеша. Вы не должны хранить там ничего важного.
Если вам нужна высокая производительность или высокая доступность, доступны сторонние инструменты, продукты и услуги.
Redis
Redis может выполнять ту же работу, что и memcached, и может выполнять ее лучше.
Redis также может действовать как кеш . Он также может хранить пары ключ / значение. В Redis они могут быть даже до 512 МБ.
Вы можете отключить сохранение, и при перезагрузке ваши данные также будут потеряны. Если вы хотите, чтобы ваш кэш продолжал работу, он также может это сделать. На самом деле это по умолчанию.
Это тоже очень быстро, часто ограничено пропускной способностью сети или памяти.
Если одному экземпляру redis / memcached недостаточно производительности для вашей рабочей нагрузки, redis является очевидным выбором. Redis включает поддержку кластера и поставляется с инструментами высокой доступности ( redis-sentinel ) прямо "в коробке". За последние несколько лет Redis также стал явным лидером в инструментах сторонних производителей. Такие компании, как Redis Labs, Amazon и другие, предлагают множество полезных инструментов и сервисов redis. Экосистема вокруг Redis намного больше. Количество крупномасштабных развертываний теперь, вероятно, больше, чем для memcached.
Redis Superset
Redis - это больше, чем кеш. Это сервер структуры данных в памяти. Ниже вы найдете краткий обзор того, что Redis может сделать, помимо простого кэша ключа / значения, такого как memcached. Большинство функций Redis - вещи, которые memcached не может сделать.
Документация
Redis лучше документирован, чем memcached. Хотя это может быть субъективным, оно кажется все более и более верным все время.
redis.io - фантастический легко управляемый ресурс. Это позволяет вам попробовать redis в браузере и даже дает вам живые интерактивные примеры с каждой командой в документации.
Теперь для redis в 2 раза больше результатов стекового потока по сравнению с memcached. В 2 раза больше результатов Google. Более легкодоступные примеры на нескольких языках. Более активное развитие. Более активное развитие клиента. Эти измерения могут не иметь особого значения в отдельности, но в сочетании они дают четкую картину того, что поддержка и документация для redis являются более значительными и более современными.
Упорство
По умолчанию Redis сохраняет ваши данные на диск с помощью механизма, называемого снимком. Если у вас достаточно оперативной памяти, он может записать все ваши данные на диск практически без снижения производительности. Это почти бесплатно!
В режиме моментального снимка есть вероятность, что внезапный сбой может привести к небольшому количеству потерянных данных. Если вам абсолютно необходимо убедиться, что никакие данные никогда не будут потеряны, не беспокойтесь, Redis также поддержит режим AOF (Append Only File). В этом режиме сохранения данные могут быть синхронизированы с диском в том виде, в котором они записаны. Это может снизить максимальную пропускную способность записи до того, насколько быстро ваш диск может записать, но все равно должно быть достаточно быстрым.
Есть много опций конфигурации, чтобы настроить постоянство, если вам нужно, но значения по умолчанию очень разумны. Эти параметры позволяют легко настроить Redis как безопасное избыточное место для хранения данных. Это настоящая база данных.
Много типов данных
Memcached ограничен строками, но Redis является сервером структуры данных, который может обслуживать множество различных типов данных. Он также предоставляет команды, необходимые для максимально эффективного использования этих типов данных.
Строки ( команды )
Простой текст или двоичные значения размером до 512 МБ. Это единственный тип данных redis и memcached share, хотя строки memcached ограничены 1 МБ.
Redis предоставляет больше инструментов для использования этого типа данных, предлагая команды для побитовых операций, манипулирования на уровне битов, поддержки увеличения / уменьшения с плавающей запятой, запросов диапазона и многоключевых операций. Memcached не поддерживает ничего из этого.
Строки полезны для всех видов использования, поэтому memcached довольно полезен только с этим типом данных.
Хеши ( команды )
Хэши являются своего рода хранилищем значений ключей в хранилище значений ключей. Они отображаются между строковыми полями и строковыми значениями. Карты Field-> value, использующие хэш, занимают немного больше места, чем карты key-> value, использующие обычные строки.
Хеши полезны в качестве пространства имен или когда вы хотите логически сгруппировать много ключей. С помощью хэша вы можете эффективно захватить все элементы, удалить все элементы вместе, удалить все элементы вместе и т. Д. Отлично подходит для любого случая использования, когда у вас есть несколько пар ключ / значение, которые необходимо сгруппировать.
Одним из примеров использования хэша является хранение пользовательских профилей между приложениями. Хэш redis, сохраненный с идентификатором пользователя в качестве ключа, позволит вам хранить столько бит данных о пользователе, сколько необходимо, сохраняя их под одним ключом. Преимущество использования хэша вместо сериализации профиля в строку заключается в том, что разные приложения могут считывать / записывать разные поля в профиле пользователя, не беспокоясь о том, что одно приложение переопределяет изменения, внесенные другими (что может произойти, если вы сериализовали устаревшие данные). данные).
Списки ( команды )
Списки Redis - это упорядоченные коллекции строк. Они оптимизированы для вставки, чтения или удаления значений сверху или снизу (иначе: слева или справа) списка.
Redis предоставляет множество команд для использования списков, в том числе команды для перемещения / извлечения элементов, перемещения / извлечения между списками, усечения списков, выполнения запросов диапазона и т. Д.
Списки создают отличные долговечные, атомарные очереди. Они отлично подходят для очередей заданий, журналов, буферов и многих других вариантов использования.
Наборы ( команды )
Наборы являются неупорядоченными коллекциями уникальных значений. Они оптимизированы, чтобы вы могли быстро проверить, есть ли значение в наборе, быстро добавить / удалить значения и измерить перекрытие с другими наборами.
Они отлично подходят для таких вещей, как списки контроля доступа, уникальные системы отслеживания посетителей и многое другое. Большинство языков программирования имеют нечто подобное (обычно называемое множеством). Это так, только распространяется.
Redis предоставляет несколько команд для управления наборами. Очевидные, такие как добавление, удаление и проверка набора присутствуют. Поэтому менее очевидны такие команды, как запись / чтение случайного элемента и команды для объединения и пересечения с другими наборами.
Сортированные наборы ( команды )
Сортированные наборы также являются коллекциями уникальных значений. Эти, как следует из названия, упорядочены. Они упорядочены по партитуре, затем лексикографически.
Этот тип данных оптимизирован для быстрого поиска по оценке. Получение наивысшего, минимального или любого диапазона значений между ними происходит очень быстро.
Если вы добавляете пользователей в отсортированный набор вместе с их высокими показателями, у вас есть отличная таблица лидеров. По мере появления новых высоких результатов, просто добавьте их в сет снова с их высоким результатом, и он будет переупорядочивать вашу таблицу лидеров. Также отлично подходит для отслеживания последних посещений пользователей и кто активен в вашем приложении.
Хранение значений с одинаковыми значениями приводит к их упорядочению в лексикографическом порядке (в алфавитном порядке). Это может быть полезно для таких вещей, как функции автозаполнения.
Многие из отсортированных команд набора похожи на команды для наборов, иногда с дополнительным параметром оценки. Также включены команды для управления счетами и запроса по счету.
Geo
Redis имеет несколько команд для хранения, извлечения и измерения географических данных. Это включает в себя запросы радиуса и измерения расстояний между точками.
Технически географические данные в Redis хранятся в отсортированных наборах, поэтому это не совсем отдельный тип данных. Это скорее расширение поверх отсортированных наборов.
Растровое изображение и HyperLogLog
Как и гео, это не полностью отдельные типы данных. Это команды, которые позволяют вам обрабатывать строковые данные, как если бы они были либо растровыми, либо гиперлоглогами.
Битовые карты - это то, для чего предназначены операторы битового уровня, на которые я ссылаюсь
Strings
. Этот тип данных был основным строительным блоком для недавнего арт-проекта reddit: r / Place .HyperLogLog позволяет использовать постоянное чрезвычайно малое пространство для подсчета практически неограниченных уникальных значений с потрясающей точностью. Используя всего ~ 16 КБ, вы можете эффективно подсчитать количество уникальных посетителей вашего сайта, даже если это число исчисляется миллионами.
Транзакции и атомарность
Команды в redis являются атомарными, то есть вы можете быть уверены, что как только вы напишите значение в redis, это значение будет видно всем клиентам, подключенным к redis. Не нужно ждать, пока это значение распространится. Технически memcached также является атомарным, но с помощью redis, добавляющего все эти функциональные возможности помимо memcached, стоит отметить и несколько впечатлить, что все эти дополнительные типы данных и функции также являются атомарными.
Несмотря на то, что транзакции в реляционных базах данных не совсем такие же, в Redis также есть транзакции , использующие «оптимистическую блокировку» ( WATCH / MULTI / EXEC ).
Pipelining
Redis предоставляет функцию под названием « конвейерная обработка ». Если у вас есть много команд redis, которые вы хотите выполнить, вы можете использовать конвейерную передачу, чтобы отправлять их в redis «все за один раз», а не по одному за раз.
Обычно, когда вы выполняете команду для redis или memcached, каждая команда представляет собой отдельный цикл запроса / ответа. С конвейерной передачей Redis может буферизовать несколько команд и выполнить их все одновременно, отвечая всеми ответами на все ваши команды в одном ответе.
Это может позволить вам добиться еще большей пропускной способности при массовом импорте или других действиях, которые требуют большого количества команд.
Pub / Sub
Redis имеет команды, предназначенные для функциональности pub / sub , что позволяет redis действовать как высокоскоростной вещатель сообщений. Это позволяет одному клиенту публиковать сообщения для многих других клиентов, подключенных к каналу.
Redis делает паб / саб, а также практически любой инструмент. Выделенные брокеры сообщений, такие как RabbitMQ, могут иметь преимущества в определенных областях, но тот факт, что один и тот же сервер может также предоставлять вам постоянные долговременные очереди и другие структуры данных, которые могут понадобиться вашим рабочим нагрузкам в пабах / подсобках, Redis часто оказывается лучшим и наиболее простым инструментом. для работы.
Lua Scripting
Вы можете думать о сценариях lua, таких как собственный SQL или хранимые процедуры redis. Это и больше, и меньше, но аналогия в основном работает.
Возможно, у вас есть сложные вычисления, которые вы хотите, чтобы Redis выполнил. Возможно, вы не можете позволить себе откатить свои транзакции, и вам нужны гарантии, что каждый шаг сложного процесса будет происходить атомарно. Эти и многие другие проблемы можно решить с помощью сценариев lua.
Весь сценарий выполняется атомарно, поэтому, если вы можете поместить свою логику в сценарий lua, вы часто можете избежать путаницы с оптимистическими транзакциями блокировки.
пересчет
Как упоминалось выше, Redis включает в себя встроенную поддержку кластеризации и поставляется с собственным инструментом высокой доступности
redis-sentinel
.Вывод
Не долго думая, я бы порекомендовал redis over memcached для любых новых проектов или существующих проектов, которые еще не используют memcached.
Выше может показаться, что я не люблю memcached. Напротив: это мощный, простой, стабильный, зрелый и закаленный инструмент. Есть даже некоторые случаи использования, когда это немного быстрее, чем redis. Я люблю memcached. Я просто не думаю, что это имеет большой смысл для будущего развития.
Redis делает все, что делает memcached, часто лучше. Любое преимущество в производительности для memcached незначительно и зависит от рабочей нагрузки. Существуют также рабочие нагрузки, для которых redis будет быстрее, и гораздо больше рабочих нагрузок, которые может выполнять redis, а memcached просто не может. Крошечные различия в производительности кажутся незначительными, несмотря на огромную пропасть в функциональности и тот факт, что оба инструмента настолько быстры и эффективны, что вполне могут оказаться последним элементом вашей инфраструктуры, который вам когда-либо придется беспокоиться о масштабировании.
Существует только один сценарий, в котором memcached имеет больше смысла: memcached уже используется в качестве кэша. Если вы уже кешируете с memcached, продолжайте использовать его, если он соответствует вашим потребностям. Вероятно, это не стоит усилий, чтобы перейти на Redis, и если вы собираетесь использовать Redis только для кэширования, он может не принести достаточной выгоды, чтобы стоить вашего времени. Если memcached не соответствует вашим потребностям, то вам, вероятно, следует перейти на Redis. Это верно, если вам нужно масштабировать за пределы memcached или вам нужна дополнительная функциональность.
источник
Используйте Redis, если
Вы требуете выборочного удаления / истечения срока действия элементов в кэше. (Ты нуждаешься в этом)
Вам требуется возможность запрашивать ключи определенного типа. э. 'blog1: posts: *', 'blog2: Categories: xyz: posts: *'. о, да! это очень важно. Используйте это, чтобы выборочно аннулировать определенные типы кэшированных элементов. Вы также можете использовать это для аннулирования кэша фрагментов, кэша страниц, только объектов AR данного типа и т. Д.
Постоянство (Вам это тоже понадобится, если только вы не в порядке с кешем, требующим прогрева после каждого перезапуска. Очень важно для объектов, которые редко меняются)
Используйте memcached, если
Исходя из моего опыта, я имел намного лучшую стабильность с Redis, чем Memcached
источник
Memcached многопоточный и быстрый.
Redis обладает множеством функций и работает очень быстро, но полностью ограничен одним ядром, поскольку основан на цикле событий.
Мы используем оба. Memcached используется для кэширования объектов, в первую очередь, для снижения нагрузки чтения в базах данных. Redis используется для таких вещей, как отсортированные наборы, которые удобны для свертывания данных временных рядов.
источник
Это слишком долго, чтобы публиковать его как комментарий к уже принятому ответу, поэтому я поместил его как отдельный ответ
Также нужно учитывать, ожидаете ли вы, что у вашего кеша будет жесткий верхний предел памяти.
Поскольку redis - это база данных nosql с множеством функций, а кэширование - это только одна опция, для которой она может использоваться, она распределяет память по мере необходимости - чем больше объектов вы помещаете в нее, тем больше памяти она использует.
maxmemory
Вариант не строго соблюдает верхний предел использования памяти. Когда вы работаете с кешем, ключи выселяются и просрочены; скорее всего, ваши ключи имеют разный размер, поэтому происходит фрагментация внутренней памяти.По умолчанию redis использует распределитель памяти jemalloc , который старается быть компактным и быстрым, но это распределитель памяти общего назначения, и он не может справиться с большим количеством выделений и очисткой объектов, происходящей с высокой скоростью. Из-за этого на некоторых шаблонах загрузки процесс redis может, по-видимому, привести к утечке памяти из-за внутренней фрагментации. Например, если у вас есть сервер с 7 ГБ ОЗУ и вы хотите использовать redis в качестве непостоянного кеша LRU, вы можете обнаружить, что процесс
maxmemory
redis со временем 5 ГБ будет использовать все больше и больше памяти, в конечном итоге достигая общего лимита ОЗУ до тех пор, пока убийца нехватки памяти вмешивается.memcached лучше подходит к описанному выше сценарию, так как он управляет своей памятью совершенно по-другому. memcached выделяет один большой кусок памяти - все, что ему когда-либо понадобится - и затем управляет этой памятью самостоятельно, используя собственный реализованный распределитель slab . Более того, memcached старается поддерживать низкую внутреннюю фрагментацию, так как фактически использует алгоритм LRU для каждой плиты , когда выселения LRU выполняются с учетом размера объекта.
С учетом сказанного, memcached по-прежнему занимает сильные позиции в средах, где использование памяти должно быть принудительным и / или предсказуемым. Мы попытались использовать последнюю стабильную версию Redis (2.8.19) как непостоянную замену memcached на основе LRU при рабочей нагрузке 10-15 тыс. Операций в секунду, и она пропускала память A LOT; одна и та же рабочая нагрузка приводила к сбою повторных экземпляров ElastiCache Amazon через день или около того по тем же причинам.
источник
maxmemory
не учитывает фрагментацию внутренней памяти. Пожалуйста, смотрите мой комментарий выше для деталей - проблемы, которые я описал, были обнаружены в сценарии, описанном на странице «Redis as LRU cache» с включенными параметрами ограничения памяти. Memcached, с другой стороны, использует другой подход, чтобы избежать проблемы фрагментации памяти, поэтому его предел памяти гораздо более «жесткий».Memcached хорош в том, чтобы быть простым хранилищем ключей / значений, и хорош в key => STRING. Это делает его действительно хорошим для хранения сессий.
Redis хорош в выполнении key => SOME_OBJECT.
Это действительно зависит от того, что вы собираетесь туда вставить. Насколько я понимаю, с точки зрения производительности они довольно даже.
Также удачи в нахождении каких-либо объективных ориентиров, если вы найдете какие-то любезные, отправьте их мне.
источник
Если вы не возражаете против грубого стиля письма, Redis vs Memcached в блоге Systoilet стоит прочитать с точки зрения удобства использования, но обязательно прочитайте комментарии в комментариях, прежде чем делать какие-либо выводы о производительности; Есть некоторые методологические проблемы (однопоточные тесты с занятым циклом), и Redis сделал некоторые улучшения с тех пор, как была написана статья.
И ни одна ссылка на эталонный тест не является полной, не путая вещи, поэтому также проверьте некоторые противоречивые тесты в Живом Журнале Дормондо и Antirez Weblog .
Редактировать - как указывает Antirez, анализ Systoilet довольно плохо продуман. Даже помимо недостатка однопоточности, большая часть различий в производительности в этих тестах может быть связана с клиентскими библиотеками, а не с пропускной способностью сервера. Тесты на в Antirez Веблоге действительно представляют собой сравнение гораздо больше яблок с яблоками (с тем же ртом).
источник
Я получил возможность использовать и memcached, и redis вместе в прокси-сервере для кеширования, над которым я работал, позвольте мне рассказать вам, где именно я использовал то, что и причина того же ....
Redis>
1) Используется для индексации содержимого кэша по кластеру. У меня более миллиарда ключей, распределенных по кластерам Redis, время отклика Redis значительно меньше и стабильно.
2) По сути, это хранилище ключей / значений, поэтому, где бы вы ни находились в вашем приложении, вы можете использовать redis, чтобы сильно беспокоиться.
3) Повторите постоянство, аварийное переключение и резервное копирование (AOF), чтобы упростить вашу работу.
Memcache>
1) да, оптимизированная память, которую можно использовать как кеш. Я использовал его для хранения содержимого кэша, доступ к которому осуществлялся очень часто (со скоростью 50 обращений в секунду) с размером менее 1 МБ.
2) Я выделил только 2 ГБ из 16 ГБ для memcached, что также, когда мой единственный размер контента был> 1 МБ.
3) По мере того, как содержимое растет вблизи пределов, иногда я наблюдаю более высокое время отклика в статистике (не в случае с redis).
Если вы просите об общем опыте, Redis очень зеленый, так как его легко настроить, он очень гибкий, со стабильными надежными функциями.
Кроме того, по этой ссылке доступен сравнительный результат , ниже приведены некоторые из них,
Надеюсь это поможет!!
источник
Тестовое задание. Запустите несколько простых тестов. В течение долгого времени я считал себя носорогом старой школы, так как использовал в основном memcached и считал Redis новым ребенком.
С моей нынешней компанией Redis использовался как основной кеш. Когда я копался в статистике производительности и просто начинал тестировать, Redis был с точки зрения производительности сопоставимым или минимально медленным чем MySQL.
Memcached, хотя упрощенно, дул Redis из воды полностью . Масштабируется намного лучше:
Кроме того, на мой взгляд, политика высвобождения memcached реализована намного лучше, что в результате приводит к более стабильному среднему времени отклика при обработке большего количества данных, чем может обработать кеш.
Некоторые тесты показали, что Redis в нашем случае работает очень плохо. Я считаю, что это связано со многими переменными:
Лично я не разделяю точку зрения авторов Redis на параллелизм и многопоточность.
источник
Другим бонусом является то, что может быть очень ясно, как memcache будет вести себя в сценарии кэширования, в то время как redis обычно используется как постоянное хранилище данных, хотя его можно настроить так, чтобы он вел себя так же, как memcached, то есть высвобождает наименее недавно использованные элементы, когда достигает максимума. вместимость.
Некоторые приложения, над которыми я работал, используют оба только для того, чтобы прояснить, как мы собираемся вести себя - вещи в memcache, мы пишем код для обработки случаев, когда их нет - вещи в redis, мы полагаемся на их наличие ,
Помимо этого, Redis обычно считается лучшим для большинства случаев использования, поскольку он более многофункциональный и, следовательно, гибкий.
источник
Это не было бы неправильно, если бы мы сказали, что redis - это комбинация (кеш + структура данных), а memcached - это просто кеш.
источник
Очень простой тест для установки и получения 100 000 уникальных ключей и значений для redis-2.2.2 и memcached. Оба работают на Linux linux (CentOS), и мой клиентский код (вставленный ниже) работает на рабочем столе Windows.
Redis
Время хранения 100000 значений = 18954 мс
Время загрузки 100000 значений = 18328 мс
Memcached
Время хранения 100000 значений = 797 мс
Время, необходимое для получения 100000 значений, составляет = 38984 мс
источник
Одно из основных отличий, которое здесь не указано, заключается в том, что Memcache всегда имеет верхний предел памяти, в то время как Redis не имеет по умолчанию (но его можно настроить). Если вы всегда хотите хранить ключ / значение в течение определенного периода времени (и никогда не извлекаете его из-за нехватки памяти), вы должны использовать Redis. Конечно, вы также рискуете проблемой нехватки памяти ...
источник
Самая большая оставшаяся причина - специализация.
Redis может делать много разных вещей, и одним из побочных эффектов является то, что разработчики могут начать использовать множество этих различных наборов функций в одном экземпляре. Если вы используете функцию LRU в Redis для кэширования вместе с жестким хранилищем данных, которое НЕ является LRU, вполне возможно исчерпать память.
Если вы собираетесь настроить выделенный экземпляр Redis, который будет использоваться ТОЛЬКО в качестве экземпляра LRU, чтобы избежать этого конкретного сценария, то на самом деле нет никаких веских причин использовать Redis поверх Memcached.
Если вам нужен надежный кэш LRU "никогда не выходит из строя" ... Memcached будет соответствовать всем требованиям, так как он не может исчерпать память по своему дизайну, а специализированная функциональность не позволяет разработчикам пытаться сделать его таким, что могло бы это подвергнуть опасности. Простое разделение интересов.
источник
Memcached будет работать быстрее, если вы заинтересованы в производительности, даже потому, что Redis использует сетевые соединения (вызовы TCP). Также внутренне Memcache работает быстрее.
Redis имеет больше возможностей, как было отмечено в других ответах.
источник
Мы думали о Redis как о загрузке нашего проекта на работе. Мы думали, что с помощью модуля в
nginx
вызываемомHttpRedis2Module
или чего-то подобного у нас будет потрясающая скорость, но при тестировании с AB-тестом мы оказались неправы.Может быть, модуль был плохой или наш макет, но это была очень простая задача, и было еще быстрее брать данные с помощью php и затем помещать их в MongoDB. Мы используем APC в качестве системы кеширования, а также php и MongoDB. Это было намного быстрее, чем
nginx
модуль Redis.Мой совет, чтобы проверить это самостоятельно, делая это покажет вам результаты для вашей среды. Мы решили, что использовать Redis в нашем проекте не нужно, так как в этом нет никакого смысла.
источник
Redis лучше.
Плюсы
Redis
есть,LUA
Поддержка скриптов)Принимая во внимание
Memcache
, что система типа кэша значения ключа в памяти.источник
Ну, я в основном использовал как свои приложения, Memcache для кеширования сессий, так и redis для объектов doctrine / orm запросов. С точки зрения производительности оба практически одинаковы.
источник
Вот действительно отличная статья / отличия от Amazon
Redis - явный победитель по сравнению с memcached.
Только один плюс для Memcached. Он многопоточный и быстрый. Redis обладает множеством замечательных функций и работает очень быстро, но ограничен одним ядром.
Отличная информация о Redis, которая не поддерживается в Memcached
источник