2012-07-02 2 views
0

Мне нужна таблица сравнения для сортировки баз данных (MySQL, SQLite и т. Д.). Я не могу его найти.Как выбрать базу данных?

Мой случай использования, я реализую хранение объектов в распределенной хеш-таблице. Мне нужно база данных решение, которое:

  • Быстро для не сортировать
  • упрощенного (нет пользователей, предпочтительно никаких дополнительных структур, как несколько таблиц и т.д.)
  • Concurrent (если это возможно)
  • Мультиплатформной
  • файла на основе (не хранится в памяти в первую очередь)
  • Централизованная

Я буду программировать в Go.

Как я понимаю, я считаю, что мне нужна то, что называется Документированная база данных, потому что я храню объекты, идентифицированные ключами.

EDIT: Хотя я реализую в DHT, я также буду хранить метаданные об объектах, таких как подсчеты доступа и т.д. Было бы также желательно иметь Tll (время жизни)

+0

Таблицы не совсем «объектно-ориентированный вещи» –

+0

Посмотрите в MongoDB – bfavaretto

ответ

2

«Документ ориентированный "не то, что я бы назвал тем, что вы хотите. Я думаю, вам нужен «хранилище для ключей», который, вероятно, является самым простым типом NoSQL для использования. Вы можете сделать что-то вроде этого:

> set "key" value 
"OK" 
> get "key" 
"value" 

Таким образом, я рекомендую redis, который я нахожу приятно «свет» по сравнению с более тяжелыми и более структурированными альтернативами. Вы можете попробовать его на Try Redis, который является функциональной интерактивной оболочкой.


Редактировать: ваш комментарий, а также ваши изменения, по-прежнему рекомендуем Redis. Redis имеет TTL, в виде двух команд: expire, который занимает несколько секунд, и expireat, который берет временную метку Unix. Кроме того, она позволяет хэши, которые отвечают вашим потребностям (как я их понимаю):

> hmset POST:dd68f250-c3f2-11e1-9b21-0800200c9a66 _timestamp 1341198420 title "An Example" content "This is an example of a representation of a blog post (or something) in Redis." 
"OK" 
> hgetall POST:dd68f250-c3f2-11e1-9b21-0800200c9a66 
{"_timestamp":"1341198420","title":"An Example","content":"This is an example of a representation of a blog post (or something) in Redis."} 
> expire POST:dd68f250-c3f2-11e1-9b21-0800200c9a66 60 
true 
> ttl POST:dd68f250-c3f2-11e1-9b21-0800200c9a66 
53 
+0

Я должен добавить, что я буду хранить метаданные объекты – liamzebedee

+0

Вы также можете сохранить хэш в Redis, что позволяет вам иметь несколько ключей, связанных с одним «объектом». – syrion

+0

Мне нравится Редис, еще несколько вопросов. В одном из моих вариантов использования мне нужно получить 20 ближайших объектов к ключу. Расстояние определяется как XOR двух ключей (Kademlia). Для этого потребуется некоторая сортировка по пользовательскому алгоритму (метка XOR каждого ключа объекта на ключе). Как я могу это реализовать? – liamzebedee

Смежные вопросы