cari

Rumah  >  Soal Jawab  >  teks badan

redis - REIDS 排名问题, 取前后5名

用 zAdd 加入排名

zAdd ranks 1000 老王
zAdd ranks 1001 如花
zAdd ranks 1002 死鱼
....

想取 用户老王及老王的前后各5名, 有没有简便方法?

谢谢。

怪我咯怪我咯2798 hari yang lalu797

membalas semua(1)saya akan balas

  • 黄舟

    黄舟2017-04-22 09:01:51

    Pertama, dapatkan kedudukan semasa Lao Wang: ZRANK ranks 老王, dengan anggapan kedudukan Lao Wang ialah ke-N.

    (5 teratas yang saya maksudkan di sini merujuk kepada mereka yang mempunyai markah lebih tinggi daripada Lao Wang, dan 5 terbawah ialah mereka yang mempunyai markah lebih kecil daripada Lao Wang)
    Kemudian 5 teratas Lao Wang ialah: ZRANGE ranks N+1 N+6,
    5 terakhir Lao Wang ialah: ZRANGE ranks N-6 N-1.

    Diambil bersama, ditambah dengan Lao Wang sendiri sebelum dan selepas, ia adalah: ZRANGE ranks N-6 N+6.

    Nota: Anda mesti ingat untuk menentukan dahulu sama ada N-6 dan N-1 kurang daripada 0.

    balas
    0
  • Batalbalas