如何从排序集中获取最后的数据?

时间:2014-11-11 20:20:01

标签: redis

我看过Redis教程。对于我的情况,有一个功能: ZREVRANGEBYSCORE 但我不明白如何通过此函数获取最后一个数据。

我尝试ZREVRANGEBYSCORE myzset 0 1获取最后一个数据行

3 个答案:

答案 0 :(得分:4)

假设"最后的数据"表示分数最高的项目,请按以下方式使用ZREVRANGEBYSCORE命令:

ZREVRANGEBYSCORE <key> +inf -inf LIMIT 0 1

答案 1 :(得分:0)

我在 Node.js 上的例子。从有序集合中获取最后 5 个元素。

redis.zadd('key1', 0, 'val0');
redis.zadd('key1', 2, 'val2');
redis.zadd('key1', 3, 'val3');
redis.zadd('key1', 4, 'val4');
redis.zadd('key1', 6, 'val6');
redis.zadd('key1', 8, 'val8');
redis.zadd('key1', 11, 'val11');
redis.zadd('key1', 21, 'val21');

setTimeout(() => {

    redis.zrange('key1', -5, -1, (error, result) => {
        console.log('result:', result);
    });

}, 1000);

答案 2 :(得分:0)

ZREVRANGEBYSCORE myzset 0 0 怎么样?

redis> zadd score 100 Kenny 100 May 20 Mary 100 Doe 50 Foo
(integer) 5

redis> zrevrange score 0 0
1) "William"

redis> zrevrangebyscore score +inf -inf
1) "William"
2) "May"
3) "Kenny"
4) "Doe"
5) "Mary"

redis> zrevrangebyscore score +inf -inf withscores
 1) "William"
 2) "100"
 3) "May"
 4) "100"
 5) "Kenny"
 6) "100"
 7) "Doe"
 8) "100"
 9) "Mary"
10) "20"