Который является эффективным дБ для автозаполнения для нескольких миллионов данных

Мне нужно знать, какой из них будет лучшим БД для автостопных БД с 80 миллионами записей...

    1)Redis
    2)tokyoCabinet
    3)Kyoto Cabinet

2 ответа

Этот сайт может иметь то, что вы ищете: http://perfectmarket.com/blog/not_only_nosql_review_solution_evaluation_guide_chart

У вас есть несколько вещей для рассмотрения:

  1. Объем данных - база данных должна уметь обрабатывать множество записей и больших файлов
  2. Элемент списка
  3. Скорость вставок и поиска
  4. Стабильность - вы не хотите падать, потому что вы бьете по БД множеством попаданий, как это обычно происходит с автозаполнением.

Я знаю, что это не в вашем списке, но я бы пошел с MongoDB. Если вы не можете, то я бы пошел с Redis, просто для фактора скорости.

Redis отлично подходит для автозаполнения из-за его отсортированных наборов (реализованных в виде списка пропусков). Схема, которую я использовал с успехом, в основном содержит каждое частичное слово в качестве ключа (поэтому "python" будет сопоставляться с ключами: "py", "pyt", "pyth", "pytho" и "python"). Данные, связанные с каждым ключом, представляют собой отсортированный набор, в котором присутствует значение, обеспечивающее лексическое упорядочение исходной фразы (обеспечивает сортировку результатов), а ключ представляет собой отображение идентификатора на данные, которые вы хотите вернуть. Затем я храню идентификаторы и данные в хэше.

схема

Вот пример проекта, написанного на python, с более подробной информацией: https://github.com/coleifer/redis-completion

Другие вопросы по тегам