zrange

1. 基本語法

zrange(key, start,stop, ["WITHSCORES"],callback)

zrevrange相反,分數先「由小到大」排序,再根據start以及stop篩選索引範圍,並回傳有序集合中的成員[分數]。

2. 範例

(1) 按分數「由小到大」取得集合成員

client.del('order:set');

client.zadd('order:set', 3, 'A');
client.zadd('order:set', 2, 'B');
client.zadd('order:set', 1, 'C');

client.zrange('order:set', 0, -1, redis.print);
Reply: C,B,A

(2) 取得排序成員及對應分數

client.zadd('order:set', 3, 'A');
client.zadd('order:set', 2, 'B');
client.zadd('order:set', 1, 'C');

client.zrange('order:set', 0, -1, "WITHSCORES", (err, obj) => {
    console.log(obj);
});
[ 'C', '1', 'B', '2', 'A', '3' ]

(3) 若分數相同,則依字典序(lexicographic ordering)排序成員

client.del('order:set');

client.zadd('order:set', 1, '1');
client.zadd('order:set', 1, '2');
client.zadd('order:set', 1, '12');

client.zrange('order:set', 0, -1, redis.print);
Reply: 1,12,2
client.del('order:set');

client.zadd('order:set', 1, 'B');
client.zadd('order:set', 1, 'A');
client.zadd('order:set', 1, '2');
client.zadd('order:set', 1, '1');
client.zadd('order:set', 1, '二');
client.zadd('order:set', 1, '一');
client.zadd('order:set', 1, '@');
client.zadd('order:set', 1, '!');

client.zrange('order:set', 0, -1, redis.print);
Reply: !,1,2,@,A,B,一,二

Last updated

Was this helpful?