Redis: Как пересечь «нормальный» набор с отсортированным набором?
Предположим, у меня есть набор (или отсортированный набор или список, если это будет лучше)A от 100 до 1000 строк.
Тогда у меня есть отсортированный наборB из многих других строк, скажем, миллион.
СейчасC должно быть пересечениеA а такжеB (из строк конечно).
Я хочу иметь каждый кортеж (X, SCORE_OF_X_IN_B), где X находится вC.
Любая идея?
У меня есть две идеи:
Interstore store A a sorted set with every score being 0 interstore to D get every item of D delete D Simple loop in client loop over A in my client programm get zscore for every stringВ то время как 1. имеет слишком много накладных расходов на стороне redis (приходится писать, например. Страница redis также говорит о довольно высокой сложности времени)http://redis.io/commands/zinterstore), 2. будет иметь | A | соединения с базой данных и не будет хорошим выбором.
Возможно, я мог бы написать скрипт redis / lua, который будет работать как zscore, но с произвольным числом строк, но я не уверен, что мой хостер разрешает скрипты ...
Поэтому я просто хотел спросить SO, есть ли элегантное и быстрое решение без сценариев!