Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Redis SortedSet:Bagaimana cara mendapatkan nilai dalam urutan numerik daripada urutan abjad ketika dua nilai memiliki skor yang sama?

Ketika anggota himpunan yang diurutkan memiliki skor yang sama, mereka diurutkan secara leksikografis. Tidak ada cara mudah untuk memesannya secara berbeda AFAIK tetapi Anda dapat dengan mudah melakukan penyortiran di sisi klien. Sebagai alternatif, Anda bisa memasak skrip Lua pendek yang melakukannya untuk Anda di server.

Ada cara yang sedikit meretas agar Anda bisa mendapatkan apa yang Anda inginkan tanpa menggunakan pendekatan di atas. Berdasarkan contoh yang Anda berikan dan dengan asumsi bahwa peringkat dan id pengguna adalah bilangan bulat, Anda dapat menggunakan skor yang merupakan kombinasi keduanya, seperti:

zadd game_rank 550006435 6435
zadd game_rank 556088561 6088561
zadd game_rank 550608825 608825

Ini akan memungkinkan Anda melakukan rentang dan Anda akan mendapatkan penyortiran "numerik" untuk setiap peringkat (yaitu dengan zrangebyscore game_rank 550000000 559999999 ).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara terhubung ke instance cluster Docker Redis menggunakan jedis untuk Java?

  2. Transaksi Redis &Skrip Lua yang Berjalan Lama

  3. Bagaimana cara mengkonfigurasi seledri-redis dalam proyek Django di microsoft Azure?

  4. Redis filter berdasarkan rentang, urutkan dan kembalikan 10 terlebih dahulu

  5. Redis CLI tidak menampilkan kunci yang baru saja disimpan melalui Laravel