Itu pertanyaan dengan banyak kemungkinan jawaban. Inilah dua teratas saya:
-
Gunakan kekuatan Lua untuk menghindari pemindahan data ke klien dan selesaikan semua pekerjaan di sisi server. Anda dapat mengatasi kekurangan RANGESTORE dengan cara ini.
-
Pertahankan set yang diurutkan di mana skor dibuat dari kedua atribut, menggunakan bit-interleaving. Dalam syair Redis terdapat eksperimen oleh antirez yang disebut redimension yang melakukan persis seperti itu. Tautannya adalah https://www.reddit.com/r/redis/comments/3qjlkk/redimension_ruby_library_implementing/ dan port saya di atas ke Redis lua https://www.reddit.com/r/redis/comments/3s0h73/ luaredimension_redis_multidimensional_query/. Anda dapat membaca lebih lanjut tentang pendekatan di indeks Multi dimensi.