2012-03-30 2 views
0

Мне нужно хранить более 100 миллионов значений ключа в моем HashMultiMap (ключ может иметь несколько значений). Теперь я хочу использовать для этого Jedis. Я загружаю его с here - Jedis 2.0.0.0.jar как рекомендовал для меня here. Теперь, после небольшого поиска, я не нашел ничего хорошего документа, который помогает мне в качестве новичка:Redis: Beginners Issue

1) Как использовать Jedis (в частности, нужно ли рассматривать его как обычные .jar-файлы в java ex. Like Гуава)?

2) Как реализовать HashMultiMap (ключ может иметь несколько значений) в Redis?

3) Как выполнить все вставку, поиск и т. Д. В Redis.

4) Я нашел путем поиска Redis, много вариантов как Jedis, Redis, Jredis и т. Д. Каковы эти варианты? И какой из них мне понравился бы для решения this?

Любая информация и/или ссылка на любой документ будут полезны для меня. Извините, если у меня возникнут какие-то глупые вопросы, потому что я понятия не имею о Redis. Итак, начинающая идея будет для меня ценной. Благодарю.

+0

Redis имеет руководство пользователя, Jedis имеет страницу проекта. Вы должны начать с источника, так как мы собираемся перенаправить вас туда. – ControlAltDel

+0

Кроме того, вы должны задать один вопрос на вопрос :) –

ответ

1

Я боюсь, что нет простого способа добиться того, чего вы хотите. У Redis есть только обычные хеши. Один ключ - одно значение.

Однако вы можете сериализовать несколько значений в строке и сохранить , чтобы в качестве значения. Конечно, вы теряете возможность индивидуально вставлять/обновлять/удалять элементы, вам придется каждый раз восстанавливать все значение. Но для вас это не проблема.

+0

OK .. Итак, каждый раз я должен принимать значение ключа (для столкновения) и добавлять его в строку. Нет встроенного способа? – Arpssss

+0

Я думал больше о json-строках, но вы тоже можете это сделать. –

1

У Redis несколько внутренних типов, таких как lists or sets or associated hashes. Я думаю, вы можете использовать наборы для своего случая. Лучше сериализовать данные whle, потому что операции с внутренними типами являются атомарными, и вам не нужно беспокоиться о возможных условиях гонки.

1
  1. чек из https://github.com/xetorthio/jedis/wiki и http://redis.io/commands
  2. Есть несколько способов, которые предполагают использование списка/SortedSet/hashs в качестве одного поля Вашего Multimap. Затем a) сделать подданные для предоставления разделенных пространств имен, то есть ограничить то, что является вашим общим мультимапом (select. И/или b) использовать богатую семантику, которую ключи имеют в redis (см. Пример here). Вы можете создать свой мультимап, просто используя обычные сопоставления ключей/значений set/get с ключевым именем, дополнительно описывающим ваши поля карты. У вас есть множество вариантов, чтобы получить то, что вы хотите. Один из последних курортов - это скриптинг.
  3. Зависит!
  4. afaik, jedis является наиболее зрелым.
Смежные вопросы