Какую базу данных ключ-значение я должен использовать?
Мое приложение будет использовать полные таблицы, и каждая таблица может иметь миллионы (4-5) пар ключ-значение. Никаких отношений между таблицами не требуется.
Ниже приведены операции, которые я выполняю на столах.
- Который использует идеальное сочетание кэширования в памяти и постоянного хранения, отказоустойчивости и восстановления после сбоев.
- Обновите значение для определенного ключа очень часто. Один поток делает это для определенного ключа.
- Нужно отсортировать порядок ключей в таблице по значению.(Часто используется)
- Несколько вставок пары ключ-значение.
Существует довольно много баз данных No Sql, таких как Apache H-Base, Cassandra, Berkeley DB, Redis... и т. Д. Pls предлагает мне, что лучше всего подходит для моего варианта использования. Каковы системные требования?
2 ответа
Который использует идеальное сочетание кэширования в памяти и постоянного хранения, отказоустойчивости и восстановления после сбоев.
Redis в настоящее время, пожалуй, самое популярное (не только) решение K/V для хранения данных в памяти. Чтобы сделать его отказоустойчивым, вы можете использовать его функцию репликации master-slave.
Обновите значение для определенного ключа очень часто. Один поток делает это для определенного ключа.
Не уверен, что вы подразумеваете под "один поток делает это для определенного ключа", но Redis разработан, чтобы быть очень быстрым.
Нужно отсортировать порядок ключей в таблице по значению.(Часто используется)
Redis поддерживает отсортированную структуру данных набора.
Каковы системные требования?
Что касается объема памяти, я бы порекомендовал прочитать документ по оптимизации памяти.
Предлагая Redis p3. нужна некоторая избыточность памяти для решения ключей в отсортированном наборе. но все же здесь один вопрос: у вас было так много памяти?