To pytanie z wieloma możliwymi odpowiedziami. Oto moje dwa najlepsze:
-
Wykorzystaj moc Lua, aby uniknąć przenoszenia danych do klienta i wykonaj całą pracę po stronie serwera. W ten sposób możesz obejść brak RANGESTORE.
-
Utrzymuj posortowany zestaw, w którym wyniki są tworzone z obu atrybutów, używając przeplatania bitowego. W Redis-verse istnieje eksperyment Antireza zwany redimension, który dokładnie to robi. Linki to https://www.reddit.com/r/redis/comments/3qjlkk/redimension_ruby_library_implementing/ i mój port powyższego do Redis lua https://www.reddit.com/r/redis/comments/3s0h73/ luaredimension_redis_multidimensional_query/. Możesz przeczytać więcej o tym podejściu w Indeksy wielowymiarowe.