Questa è una domanda con molte possibili risposte. Ecco i miei primi due:
-
Usa la potenza di Lua per evitare di spostare i dati sul client e fare tutto il lavoro sul lato server. Puoi aggirare la mancanza di RANGESTORE in questo modo.
-
Mantenere un set ordinato in cui i punteggi sono composti da entrambi gli attributi, utilizzando l'interlacciamento dei bit. Nel Redis-verse esiste un esperimento di antirez chiamato redimension che fa esattamente questo. I link sono https://www.reddit.com/r/redis/comments/3qjlkk/redimension_ruby_library_implementing/ e il mio port di quanto sopra a Redis lua https://www.reddit.com/r/redis/comments/3s0h73/ luaredimension_redis_multidimensional_query/. Puoi leggere di più sull'approccio in Indici multidimensionali.