我看过Redis教程。对于我的情况,有一个功能: ZREVRANGEBYSCORE 但我不明白如何通过此函数获取最后一个数据。
我尝试ZREVRANGEBYSCORE myzset 0 1
获取最后一个数据行
答案 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"