それは多くの可能な答えがある質問です。これが私のトップ2です:
-
Luaの機能を使用して、データをクライアントに移動しないようにし、すべての作業をサーバー側で実行します。この方法で、RANGESTOREの不足を回避できます。
-
ビットインターリーブを使用して、スコアが両方の属性で構成されているソート済みセットを維持します。 Redis-verseには、まさにそれを行う、redimensionと呼ばれるantirezによる実験があります。リンクはhttps://www.reddit.com/r/redis/comments/3qjlkk/redimension_ruby_library_implementing/で、上記のRedisluaへの移植https://www.reddit.com/r/redis/comments/3s0h73/ luaredimension_redis_multidimension_query/。このアプローチの詳細については、多次元インデックスをご覧ください。