Как говорили другие, это всегда зависит от ваших потребностей. Я, например, предпочитаю все, что подходит моим приложениям.
Сначала я использовал memcached для быстрого доступа к чтению / записи. В качестве Java API я использовал SpyMemcached, что обеспечивает очень простой интерфейс, который вы можете использовать для записи и чтения данных. Из-за утечек памяти (больше не было оперативной памяти) мне пришлось искать другое решение, также я не мог правильно масштабировать, просто увеличение памяти для одного процесса казалось не очень хорошим достижением.
После некоторого обзора я увидел couchbase, он поставляется с репликацией, кластеризацией, автоматическим переключением при сбое и выпуском для сообщества (MS Windows, MacOs, Linux). И самое лучшее для меня было то, что его Java-клиент также поддерживает SpyMemcached, так что мне практически ничего не оставалось, как настроить сервер и использовать couchbase вместо memcached в качестве хранилища данных. Преимущество? Конечно, мои данные теперь постоянны, реплицируются и индексируются. Он поставляется с веб-консолью для написания карт и функций для просмотра документов в эрланге.
Имеет поддержку Python, Ruby, .Net и др., Простую настройку через веб-консоль и клиентские инструменты. Он работает стабильно. С некоторыми тестами я смог написать примерно 10k в секунду для записей длиной 200 - 400 байт. Хотя производительность чтения была намного выше (оба тестировались локально). Получайте удовольствие от принятия решения.