搜尋

首頁  >  問答  >  主體

redis - REIDS 排名問題, 取前後5名

用 zAdd 加入排名

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

想取 用戶老王及老王的前後各5名, 有沒有簡便方法?

謝謝。

怪我咯怪我咯2797 天前793

全部回覆(1)我來回復

  • 黄舟

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

    首先,取得老王的目前排名:ZRANK ranks 老王,假設老王的排名的第N名。

    (我這裡所說的前5名是指score比老王大的,後5名是score比老王小的)
    那麼老王的前5名是:ZRANGE ranks N+1 N+6,
    老王的後5名是:ZRANGE ranks N-6 N-1

    綜合一下,前後加上老王自己就是:ZRANGE ranks N-6 N+6

    注意:你要記得先判斷N-6和N-1是否小於0

    回覆
    0
  • 取消回覆