@click_f

Какую структуру данных выбрать для хранения данных в памяти?

Требуется хранить большое количество пользователей (2-3млн). Для каждого пользователя имеется набор атрибутов. Для некоторых целей необходимо быстро вывести список пользователей убыванию/возрастанию некоторых из данных атрибутов.
  1. Вопрос какую структуру будет лучше всего использовать для этого в общем случае?
  2. Имеет ли смысл писать с нуля binary heap?
  3. Какая из уже имеющихся структур данных java лучше всего подойдет для этих целей?
  • Вопрос задан
  • 374 просмотра
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
А зачем непосредственно в приложении это делать? Возьмите, к примеру, redis.io, в нем и храните. Там не только sortedset, но и hash и и сounters и еще кучу всего реализовано. Работает быстро, лежит в памяти, кластеризуется и шардируется.

В вашем случае удобней было бы держать ваши атрибуты в sortedset, где имя коллекции = атрибут, а значениями - id пользователей.
Ответ написан
Комментировать
Rou1997
@Rou1997
Всех пользователей сразу нужно вывести? А может все-таки не стоит их столько хранить в памяти?

Какая из уже имеющихся структур данных java лучше всего подойдет для этих целей?

Лучше, чтобы это не Java была, а C/C++, для этого используйте JNI, иначе ОЗУ будет много занимать, да и быстродействие вряд ли получится на высоте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы