Зависит от того, что вам нужно, в общем, я думаю, что:
- Вы не должны заботиться о выступлениях. Redis быстрее на ядро с небольшими значениями, но memcached может использовать несколько ядер с одним исполняемым файлом и портом TCP без помощи клиента. Кроме того, memcached быстрее с большими значениями порядка 100 КБ. Redis недавно значительно улучшил работу с большими значениями (нестабильная ветвь), но все же memcached быстрее в этом случае. Суть в следующем: ни то, ни другое, скорее всего, не станет вашим узким местом для запроса в секунду, который они могут доставить.
- Вы должны заботиться об использовании памяти. Для простых пар ключ-значение memcached более эффективно использует память. Если вы используете хэши Redis, Redis более эффективно использует память. Зависит от варианта использования.
- Вы должны заботиться о постоянстве и репликации, две функции доступны только в Redis. Даже если ваша цель состоит в том, чтобы создать кеш, это помогает, что после обновления или перезагрузки ваши данные все еще там.
- Вы должны заботиться о том, какие операции вам нужны. В Redis есть много сложных операций, даже если учитывать только случай использования кэширования, вы часто можете сделать гораздо больше за одну операцию, не требуя обработки данных на стороне клиента (иногда требуется много операций ввода-вывода). Эти операции часто выполняются так же быстро, как простые GET и SET. Поэтому, если вам нужен не просто GET / SET, а более сложные вещи, Redis может сильно помочь (подумайте о кэшировании на временной шкале).
Без прецедента сейчас трудно выбрать правильный вариант, но я думаю, что для многих вещей Redis имеет смысл, поскольку даже если вы не хотите использовать его в качестве БД, будучи гораздо более способным, вы можете решить больше проблем, не только кэширование, но даже обмен сообщениями, ранжирование и так далее.
PS Конечно, я могу быть предвзятым, так как я ведущий разработчик проекта Redis.