2011-01-18 2 views
38

Каковы сильные и слабые стороны различных баз данных NoSQL?Redis, CouchDB или Cassandra?

В частности, кажется, что Redis слаб, когда речь идет о распределении нагрузки на запись по нескольким серверам. Это так? Это большая проблема? Насколько большой сервис должен расти, прежде чем это может стать серьезной проблемой?

ответ

77

Сильные и слабые стороны баз данных NoSQL (а также баз данных SQL) - это высоко в зависимости от вашего прецедента. Для очень больших проектов производительность короля; но для совершенно новых проектов или проектов, где время и деньги ограничены, простота и время выхода на рынок, вероятно, самые важные. Для того, чтобы учиться (расширять свою перспективу, становясь лучшим, более ценным программистом), возможно, самое важное - это простые, прочные фундаментальные концепции.

Какой проект вы имеете в виду?

Некоторые сильные и слабые стороны, с верхней части моей головы:

  • Redis
    • Очень простой ключ-значение "глобальной переменной сервера"
    • Очень просто (некоторые сказали бы «, не 0%)
    • Легко быстрый в этом списке
    • Сделки
    • набор
    • данных должен помещаться в памяти
    • незрелой кластеризации, с неясным будущим (я уверен, что это будет здорово, но это еще не решен.)
  • Кассандру
    • Вероятно наиболее сообщества импульс BigTable подобных баз данных
    • Вероятно, самый простой из этого списка, чтобы управлять в больших/растущих кластеров
    • Поддержка карты/уменьшить, хорошо для аналитики, хранилищ данных
    • МУЛЬТИ-центров обработки данных репликации
    • перестраиваемый консистенция/наличие
    • Нет единой точки отказа
    • Вы должны знать, какие запросы вы будете работать в начале проекта, чтобы подготовить форму данных и индексов
  • CouchDB
    • рука вниз лучшие синхронизации (репликация) поддержка, поддержка ведущий/ведомый, ведущий/ведущая, и более экзотические архитектуры
    • Протокол HTTP, браузеры/приложения могут взаимодействовать непосредственно с БД частично или полностью. (Синхронизация также осуществляется через HTTP)
    • После короткого кривого обучения, довольно сложная система запросов с помощью JavaScript, и карты/уменьшить
    • службы в кластере (без SPOF, перестраиваемый консистенция/доступности) в настоящее время значительная вилка (BigCouch). Вероятно, он объединится в Couch, но нет дорожной карты.
    • Аналогично, кластеризация и многоцентровое пространство теоретически возможны («экзотическая» вещь, о которой я упоминал), однако в это время вы должны написать все эти инструменты.
    • Добавлять только формат файла (как базы данных, так и индексы) быстро и быстро уничтожает диск, и вы должны вручную запустить уплотнение (вакуумирование), которое делает полную копию всех записей в базе данных. То же самое необходимо для каждого индексного файла. Опять же, вы должны быть вашим собственным помощником.
+8

+1 «Простота и время выхода на рынок, вероятно, самые важные». Сначала оптимизируйте свой бизнес, затем технологии. Недостатком Redis является то, что он действительно хорош только для наборов данных, которые вписываются в память; его возможности кластеризации и дисковые решения ограничены. Другие плюсы Cassandra - это репликация нескольких репликаторов, настраиваемая согласованность/доступность для каждой операции и отсутствие единой точки отказа (каждый узел в кластере играет ту же роль, что и мастера). Недостатком Cassandra является то, что вы должны думать о своих запросах, прежде чем организовывать свои данные, и это может приложить определенные усилия. –

+5

Кстати, по моему опыту, «проекты, в которых ограниченное время и деньги» охватывают ** огромное количество проектов ** в течение ** огромного большинства ** их жизненных циклов. – JasonSmith

+2

BigCouch - отличное программное обеспечение. Он возглавлял основные члены команды разработчиков CouchDB. Он будет поддерживаться и развиваться дальше. Хотя я не знаю дорожной карты, я ожидаю, что BigCouch будет слит обратно в CouchDB в некотором роде. И если вы считаете меня безнадежным фанатом, считайте, что BigCouch сделан конкурентом моей компании! – JasonSmith