Redis: ¿Cómo intersectar un conjunto "normal" con un conjunto ordenado?

Supongamos que tengo un conjunto (o un conjunto ordenado o una lista si eso sería mejor)A De 100 a 1000 cuerdas.

Entonces tengo un conjunto ordenadoB De muchas más cuerdas, digamos un millón.

AhoraC debe ser la intersección deA yB (De las cuerdas por supuesto).

Quiero tener cada tupla (X, SCORE_OF_X_IN_B) donde está XC.

¿Alguna idea?

Tengo dos ideas:

Interstorealmacenar A un conjunto ordenado con cada puntuación siendo 0interstore a Dobtener todos los elementos de Dborrar DBucle simple en clientebucle sobre A en mi programa clienteobtener zscore para cada cadena

Mientras que 1. tiene demasiada sobrecarga en el lado redis (tiene que escribir, por ejemplo, la página redis indica una complejidad de tiempo bastante alta, tambiénhttp://redis.io/commands/zinterstore), 2. tendría | A | conexiones de base de datos y no será una buena opción.

Tal vez podría escribir un script redis / lua que funcione como zscore pero con un número arbitrario de cadenas, pero no estoy seguro de si mi proveedor de contenido permite scripts ...

¡Así que solo quería preguntarle a SO, si hay una solución elegante y rápida disponible sin scripting!