2012-03-30 4 views
2

Мне нужно хранить более 100 миллионов значений ключа в моем HashMultiMap (ключ может иметь несколько значений). Может кто-нибудь помочь мне, какая из них быстрее, и для хранения и поиска:Проблема с хэш-картой Пространство и производительность

1) Berkeley DB

2) Tokyo Cabinet

3) H2

4) EhCache

5) или anyothers

Другой момент - это производительность тех, dentical для хэш-карты в памяти? Немного рекомендации будут более полезными. Благодарю.

NB: информация о любом из них также полезна.

+0

Каковы размеры вашего ключа/значений? Какая у них структура? –

+0

@JeffFoster, ключ/значения - int. – Arpssss

+0

@JeffFoster, более конкретно http://stackoverflow.com/questions/9930347/multimap-space-issue-guava – Arpssss

ответ

3

Я бы рекомендовал Redis. Это скорее хранилище структуры данных, чем другие (например, оно поддерживает карты и наборы) и требует очень мало усилий для начала работы. Это невероятно прост в использовании и имеет отличное Java API.

Я бы начал с рассмотрения функций here, которые позволяют связать ключ с группой значений.

+0

Большое спасибо. Из вашего опыта, производительность Redis примерно совпадает с картой хэш-памяти в памяти? – Arpssss

+0

Это зависит от ваших обстоятельств. У меня никогда не было проблем с работой в Redis. Лучшим советом было бы взломать прототип и просто посмотреть, что произойдет. См. Также http://redis.io/topics/benchmarks –

2

Я бы посмотрел на leveldb, потому что он утверждает, что находится faster than Kyoto Cabinet. Другие интересные библиотеки: Kyoto Cabinet и JDBM3.

Это низкоуровневые библиотеки (без поддержки реляционных запросов или SQL). Некоторые предлагают транзакционную поддержку, но я не уверен, что вам это нужно. Тем не менее, хэш-карты в памяти быстрее.

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