Параметры базы данных ключ-значение - PullRequest
3 голосов
/ 27 декабря 2011

Я посмотрел на базу данных значений ключей Redis и мне любопытны альтернативы, которые предлагают следующее:

  1. Вместо запуска внешнего механизма базы данных приотдельный процесс, а затем подключиться к нему, например, через интерфейс C :

    redisContext *c = redisConnect("127.0.0.1", 6379);

    Есть ли альтернатива, которая дает возможность включения кода базы данныхв виде библиотеки и загрузки данных в виде файла внутри двоичного файла?Например, учитывая двоичный файл myDbBinary и команду:

    $ myBinary --filter=filterOptions db.dat

    Двоичный файл myBinary не будет запускать отдельный процесс БД и не будет подключаться к его порту, а вместо этого:myBinary загружает ключи (и хэши) из файла db.dat в память (или аналогичное расположение виртуальных машин), которую он затем может фильтровать (с помощью filterOptions, независимо от того, какими они могут быть) и выполнять поиск ключей / хэшей.

  2. Интерфейсы C и Python для директив данных и хранения.

  3. Поддержка хеширования, под которой я подразумеваю, что ключ поддерживает хеш-таблицу в качестве значения.

Существует ли какое-либо подобное программное обеспечение?

Ответы [ 3 ]

4 голосов
/ 27 декабря 2011

Нет, Redis работает как процесс, а не как библиотека. В настоящее время нет способа сделать это. Вы можете использовать альтернативы, такие как Киотский кабинет (который более похож на redis).

В Киото есть поддержка хеш-таблиц для C и Python.

В качестве альтернативы вы можете использовать SQLite , но это совсем не то, что вы просили.

0 голосов
/ 28 декабря 2011

Вы можете попробовать littletable . Это «бессхемная» оперативная «база данных», которая стирает грань между таблицами и списками. littletable не использует схему, он выводит столбцы запроса и объединения из атрибутов объектов, добавленных в данную таблицу. Все запросы и объединения возвращают результаты в виде новой таблицы (вместо введения искусственной коллекции ResultSet или QuerySet), что позволяет легко объединять различные запросы, объединения, объединения и фильтры. Поля могут быть легко проиндексированы и извлечены с помощью ключа индекса - если индекс является уникальным индексом, то возвращается один соответствующий объект или вызывается KeyError; если индекс не является уникальным, возвращается новая таблица объектов с данным ключом (которая может быть пустой). Таблицы также поддерживают многие атрибуты list-ish, такие как iter и len, и могут использоваться в качестве стандартной коллекции Python для циклов и выражений генератора.

littletable включает в себя универсальный класс DataObject, который очень похож на namedtuple. Но объекты любого типа могут быть вставлены в маленькую таблицу.

Вот пример / пример: http://littletable.svn.sourceforge.net/viewvc/littletable/trunk/littletable_demo.py?revision=32&content-type=text%2Fplain

Получить последнюю версию от SVN: https://littletable.svn.sourceforge.net/svnroot/littletable

0 голосов
/ 27 декабря 2011

SQLite - это внутренняя база данных. Он реляционный, но вы можете создать в нем свое простое хранилище значений ключей. Он также включен в стандартную библиотеку Python.

...