Redis 有序集合(zset)

Redis zscan 命令用于迭代输出排序集合的元素及其分数。

zscan的基本用法

  • zscan 是一个基于游标的迭代器。这意味着在每次调用命令时,服务器都会返回一个更新的游标,用户需要在下一次调用中将其用作游标参数。
  • 当游标设置为0时开始迭代,当服务器返回的游标为0时结束。

语法:

zscan key cursor [MATCH pattern] [COUNT count] 
  • cursor - 游标。
  • pattern - 匹配的模式。
  • count - 指定从数据集里返回多少元素,默认值为 10 。

可用版本

>=2.8.0.

返回值

数组。

返回值类型

数组

示例1:Redis zscan

127.0.0.1:6379> zadd mytestset 1 M1 2 M2 3 M3 4 N1 5 N2 6 N3 7 O1 8 O2 9 O3
(integer) 9
127.0.0.1:6379> zscan mytestset 0
1) "0"
2)  1) "M1"
    2) "1"
    3) "M2"
    4) "2"
    5) "M3"
    6) "3"
    7) "N1"
    8) "4"
    9) "N2"
   10) "5"
   11) "N3"
   12) "6"
   13) "O1"
   14) "7"
   15) "O2"
   16) "8"
   17) "O3"
   18) "9" 

示例2:Redis zscan:使用计数

127.0.0.1:6379> zscan mytestset 0 COUNT 5
1) "0"
2)  1) "M1"
    2) "1"
    3) "M2"
    4) "2"
    5) "M3"
    6) "3"
    7) "N1"
    8) "4"
    9) "N2"
   10) "5"
   11) "N3"
   12) "6"
   13) "O1"
   14) "7"
   15) "O2"
   16) "8"
   17) "O3"
   18) "9" 

示例3:Redis zscan:使用模式

127.0.0.1:6379> zscan mytestset 0 COUNT 5
1) "0"
2)  1) "M1"
    2) "1"
    3) "M2"
    4) "2"
    5) "M3"
    6) "3"
    7) "N1"
    8) "4"
    9) "N2"
   10) "5"
   11) "N3"
   12) "6"
   13) "O1"
   14) "7"
   15) "O2"
   16) "8"
   17) "O3"
   18) "9"
127.0.0.1:6379>
127.0.0.1:6379> zscan mytestset 0 MATCH N*
1) "0"
2) 1) "N1"
   2) "4"
   3) "N2"
   4) "5"
   5) "N3"
   6) "6"
127.0.0.1:6379> zscan mytestset 0 MATCH *3*
1) "0"
2) 1) "M3"
   2) "3"
   3) "N3"
   4) "6"
   5) "O3"
   6) "9"
127.0.0.1:6379> zscan mytestset 0 MATCH *3* COUNT 20
1) "0"
2) 1) "M3"
   2) "3"
   3) "N3"
   4) "6"
   5) "O3"
   6) "9"