Esa es una pregunta con muchas respuestas posibles. Aquí están mis dos mejores:
-
Use el poder de Lua para evitar mover datos al cliente y hacer todo el trabajo del lado del servidor. Puede evitar la falta de RANGESTORE de esta manera.
-
Mantenga un conjunto ordenado en el que las puntuaciones estén formadas por ambos atributos, utilizando el intercalado de bits. En Redis-verse existe un experimento de antirez llamado redimensión que hace exactamente eso. Los enlaces son https://www.reddit.com/r/redis/comments/3qjlkk/redimension_ruby_library_implementing/ y mi port de lo anterior a Redis lua https://www.reddit.com/r/redis/comments/3s0h73/ luaredimension_redis_multidimensional_query/. Puede leer más sobre el enfoque en Índices multidimensionales.