@egorsmkv

Какую key/value базу данных выбрать для словаря?

Здравствуйте.

Хочу сделать большой словарь где ключом будет хеш-md5, а значение его раскодированное значение. Какую базу данных для этого задачи мне выбрать?
  • Вопрос задан
  • 2084 просмотра
Пригласить эксперта
Ответы на вопрос 5
leventov
@leventov
При описании задачи на выбор базы данных (в общем случае), key-value в особенности, что конкретно хранится - _последний_ по значимости фактор. А факторы надо учитывать следующие:

1. Уровень распределенности/параллельности: вам нужна распределённая база, или все на одном сервере? В рамках одного (или каждого) сервера, нужен конкурентный доступ, или все в один поток? Нужен ли одновременный доступ из разных процессов?
2. Какие _гарантии_ вы хотите от базы. Durable, persistent или volatile (in-memory)? Какие гарантии нужны по изоляции транзакций? Нужны ли транзакции с обновлением нескольких ключей?
3. Подходит ли вам лицензия на базу? Если база проприетарная, готовы ли вы платить за неё, и сколько?
4. Зрелость технологии, насколько стабильна последняя ветка.
5. Наличие мониторингов, интеграций с аналитическими и SQl-like надстройками типа presto, и т. д.
6. Популярность базы, размер сообщества, много ли ответов на Stack overflow, и т. д.

И только теперь

7. Скорость/эффективность по памяти, на что может (и то, не обязательно влиять) конкретный тип ключей и значений.

Пункты могут меняться по приоритету в зависимости от задачи.

Итог: по вашей вводной нельзя _даже приблизительно_ что-либо посоветовать.
Ответ написан
ruFelix
@ruFelix
Предсказание будущего по руке, таро, кофе.
В общем случае REDIS это то что доктор прописал.
Если задача и язык позволяет, то можно поиграться с judy array
Ответ написан
SynCap
@SynCap
Делаю интернет с 1998 года
Из самых популярных, по которым тонны документации, в том числе на русском: MongoDB и CouchDB.
Монго более популярна, есть куча драйверов для любых сред, а Couch - на мой взгляд - проще и дружелюбнее.

Все остальное многообразие либо для более сложных задач, либо узкоспециальные решения, либо очередная попытка добиться совершенства в экспериментах.

Для быстрого освоения рекомендую "Litle Mongo Book" для MongoDB (в Сети есть русская версия, поищите на GitHub), а у CouchDB есть свой букварь и веб-интерфейс, с которым можно поиграться.

Обе системы есть и для Windows и для LINUX. Обе имеют сокетный и веб шлюзы. Обе могут работать как самостоятельные HTTP серверы, т.е. легко создать веб-приложение и кучу всего интересного. Особой фишкой обеих можно назвать возможность создания хранимых процедур на Javascript.

Cassandra - избыточное решение для Вашей задачи, которое может быть оправдано лишь в том случае, если разработка ведется на Java и для Java среды и все кроме Java не "это ж не Java" :).
Ответ написан
@spotifi
Yandex Elliptics (если будете ставить из исходников - то легко это делается только на Ubuntu 14 и соответствуюего поколения Debian) - распределенное DHT-хранилище. Само реплицируется, восстанавливается, расширяется. Ваше дело будет только подключать новые компьютеры.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы