В поисках автономного сервера данных в памяти с последовательным доступом [закрыто
-
10-10-2019 - |
Вопрос
Нам нужна структура данных в памяти / дБ сервер С следующими характеристиками:
- автономный сервер: будет работать на той же машине, что и клиенты, поэтому любой вид IPC в порядке
- последовательный доступ:
get next/previous key
- два ключа (строка) на запись: своего рода двунаправленная карта, на самом деле
- в памяти Только: должен иметь возможность вообще не настойчивости
- RAM -диск/TMPFS Решение нежелательно
- SQL/ODBC - это вариант, хотя не требуется
- Коммерческий продукт ОК, если цена лицензии OEM разумна
До сих пор мы рассмотрели следующие варианты, но пока нет удовлетворительного решения:
- mysql: Отвечает на все требования, но теперь ответьте на то, сколько будет стоить лицензия OEM
- Мемкахед, Кассандра: Нет последовательного доступа, согласно онлайн -документам
- Редис: кажется хорошим инструментом, но опять же, я не вижу
get nex/prev
в спецификации - Постгрес: не могло бы хорошо работать на Linux/ODBC
Похоже, что все DBS NOSQL в памяти обеспечивают только прямой доступ к Key, хэш-столевому стилю. Еще не проверили Apache Derby.
Мы работаем на Linux, клиент находится в C ++.
Буду рады иметь ваши предложения. Спасибо!
РЕДАКТИРОВАТЬ: Кажется, что мы будем преследовать mysql Вариант, у нас есть разумное предложение по цене, и оно также будет полезно в качестве основного (постоянного) БД. Спасибо за все ответы, как обычно, трудно выбрать только один.
Решение
Я бы предложил Kyoto Cabinet, он имеет функцию в памяти и последовательный доступ.
РЕДАКТИРОВАТЬ: Что не так с картой STL?
Другие советы
Я бы посмотрел на SQLite с установленным именем файла базы данных: «Память:« Это создаст базу данных в памяти, которая больше не будет существовать, когда ваше приложение закроется.
Это общественное достояние, так что нет проблем с лицензированием
FASTDB должен работать просто отлично. Он поддерживает конфигурацию в памяти и общий доступ.
Redis не сортирует клавиши, но у него есть списки/наборы, которые позволяют вам получать элементы по порядку. Трудно понять, сработает ли это, не зная, почему вы хотите последовательный доступ, но с NOSQL вам часто нужно думать по -другому о структурах данных, которые вы используете.