ZSCAN 有序集合迭代器

2020-12-20  本文已影响0人  闲云野鹤_23dd

ZSCAN

语法

ZSCAN zsetKey cursor [MATCH pattern] [COUNT count]

ZSCAN 是 SCAN命令相似,不过ZSCAN 命令用于迭代 有序集合(zset类型)中的元素

MATCH 子句

正则匹配有序集合中的key。

COUNT 子句

每次读取有序集合中 元素 的数量,如果数据集合较小,会不起作用,直接返回所有元素

例子

准备zset类型 数据

127.0.0.1:6379[11]> ZRANGE z1 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379[11]> ZADD z1 1 a1 2 b2 3 c3 4 a2 5 b2 6 c2 7 a3 8 b2 9 c3
(integer) 6
127.0.0.1:6379[11]> ZRANGE z1 0 -1 withscores
 1) "a1"
 2) "1"
 3) "a"
 4) "2"
 5) "b"
 6) "3"
 7) "a2"
 8) "4"
 9) "c"
10) "4"
11) "c2"
12) "6"
13) "a3"
14) "7"
15) "b2"
16) "8"
17) "c3"
18) "9"
127.0.0.1:6379[11]> 

ZSCAN 命令 演示

127.0.0.1:6379[11]> ZSCAN z1 0  ## 遍历 z1 的所有元素
1) "0"
2)  1) "a1"
    2) "1"
    3) "a"
    4) "2"
    5) "b"
    6) "3"
    7) "a2"
    8) "4"
    9) "c"
   10) "4"
   11) "c2"
   12) "6"
   13) "a3"
   14) "7"
   15) "b2"
   16) "8"
   17) "c3"
   18) "9"
127.0.0.1:6379[11]> ZSCAN z1 0 count 3 ## 遍历 z1 的所有元素,每次读取三个元素,由于z1数据量太小,所以不起作用
1) "0"
2)  1) "a1"
    2) "1"
    3) "a"
    4) "2"
    5) "b"
    6) "3"
    7) "a2"
    8) "4"
    9) "c"
   10) "4"
   11) "c2"
   12) "6"
   13) "a3"
   14) "7"
   15) "b2"
   16) "8"
   17) "c3"
   18) "9"
127.0.0.1:6379[11]> ZSCAN z1 0 match a*  ## 遍历 z1 以a开头的元素
1) "0"
2) 1) "a1"
   2) "1"
   3) "a"
   4) "2"
   5) "a2"
   6) "4"
   7) "a3"
   8) "7"
127.0.0.1:6379[11]> ZSCAN z1 0 match *1 ## 遍历 z1 以1结尾的元素
1) "0"
2) 1) "a1"
   2) "1"
127.0.0.1:6379[11]> ZSCAN z1 0 match *2 ## 遍历 z1 以2结尾的元素
1) "0"
2) 1) "a2"
   2) "4"
   3) "c2"
   4) "6"
   5) "b2"
   6) "8"
127.0.0.1:6379[11]> 

上一篇 下一篇

猜你喜欢

热点阅读