Согласно этой теме, Jedis - лучшее, что можно использовать, если я хочу использовать Redis из Java.
Однако мне было интересно, есть ли какие-либо библиотеки/пакеты, обеспечивающие аналогичные эффективные операции с наборами, которые уже существуют в Redis, но могут быть непосредственно встроены в приложение Java без необходимости устанавливать отдельные серверы. (то есть, используя Jetty для веб-сервера).
Чтобы быть более точным, я хотел бы иметь возможность сделать следующее эффективно:
- Существует большой набор пользователей M (M не известен заранее).
- Существует большой набор из N элементов.
- Мы хотим, чтобы пользователи просматривали элементы, один пользователь/элемент за раз, который создает сохраненный результат (в обычной базе данных.)
- Каждый раз, когда пользователь приходит, мы хотим назначить этому пользователю элемент с наименьшим количеством существующих результатов, которые пользователь еще не видел раньше. Это дает приблизительное округленное распределение элементов по всем прибывающим пользователям, когда мы просто заботимся о том, чтобы все предметы просматривались примерно столько же раз.
Вышеприведенное происходит параллельно. Когда M и N являются большими, Redis выполняет вышеупомянутое гораздо более эффективно, чем SQL-запросы. Есть ли способ сделать это, используя вложенную библиотеку Java, которая немного легче, чем запуск сервера Redis?
Я понимаю, что можно написать кучу кода, используя библиотеки Java concurrency, которые примерно приблизили бы это (и в некоторой степени, я это сделал), но это не совсем то, что я ищу здесь.