Поиск базы данных на основе диска, подобной дискам

В настоящее время я использую Redis для своего приложения, и его функции отлично подходят для моего приложения (списки, наборы, отсортированные наборы и т.д.).

Мое приложение сильно зависит от отсортированных наборов, списков, наборов. И связанные с ними функции (нажмите на список, получите список, объединение наборов и т.д. Единственная проблема, с которой я сейчас сталкиваюсь, это то, что мои данные большие, и большинство моих данных не обязательно должны быть в памяти, и я хочу храните их на диске.

** Мне нужна база данных на диске с структурами данных redis **

Я читал о Cassandra, но я не уверен, поддерживает ли он отсортированные наборы, наборы, списки. Или, по крайней мере, если это так, я не мог найти способы манипулировать ими, как это делает Редис.

Спасибо.

Ответ 1

https://github.com/yinqiwen/ardb другая замена протокола REDIS с базами данных LMDB, RocksDB и LevelDB

хорошие тесты

Ответ 2

Существует множество баз данных на диске с похожими на Redis структурами данных или даже пытается быть заменяемыми протоколами для Redis.

Есть отличные рекомендации в "Есть ли что-то вроде Redis DB, но не ограничивается объемом ОЗУ?" - жаль, что сообщество считает, что такие вопросы будут вне темы.

В частности, SSDB является активно поддерживаемой Redis-подобной базой данных на диске (но не напрямую совместимой) и Ardb является активной поддержкой замены Redis, которая хранит данные на диске. Отказ от ответственности: я не использовал ни одного из них (пока).

Ответ 4

Я ободряю вас изучать Кассандру, в то время как у нее есть некоторые вещи, похожие на ключ/значение и множество, он сильно отличается от Redis.

В настоящее время мы перемещаем один проект из Redis (мы используем sadd/spop) в TokyoCabinet/KyotoCabinet через протокол Memcached. На данный момент все выглядит хорошо, и очень скоро я опубликую lib на github - будет доступен здесь:

https://github.com/nmmmnu

и проект будет называться Simple Message Queue. Он будет поддерживать только sadd/spop/sismember. Также в Python вы сможете использовать новый объект вместо объекта Redis, но только для этих трех команд.

Надеюсь, что это поможет.


Обновление 2014.07:

Вот проект, о котором я говорю.

https://github.com/nmmmnu/MessageQueue

Он реализует как протоколы Redis, так и Memcached. Для back-end используется память ndb/mdb или berkeley db.