Redis Sorted Set · 同分实验

同样是 1200 分,谁应该排在前面?

先改变三位用户的写入顺序,再观察 Redis 的排序依据。写得早,不等于排得前——除非你把“早”编码进 score。

共同业务积分 1,200

安排写入顺序

01 / WRITE

拖动成员,或使用上下按钮。三人的业务积分始终相同。

    选择 score 策略

    02 / ENCODE
    榜单通常用倒序取最高分,但正序结果也值得一起看。
    Redis score 是 IEEE 754 双精度数。整数必须保持在 253 − 1 = 9,007,199,254,740,991 内;按 1,000,000 放大后,积分上限约为 9,007,199,253。

    读取两种方向

    03 / RANGE
    ZRANGE leaderboard 0 -1 score 从小到大;同分为二进制字典序
      ZRANGE leaderboard 0 -1 REV score 从大到小;同分为反向二进制字典序
        u10117 · 49 · 48
        u2117 · 50
        u9117 · 57