Redis-SCAN-功能

Redis-SCAN-功能

主要参考这两篇:

http://blog.csdn.net/u011510825/article/details/51859656

http://redis.io/commands/scan

实验如下:

复制代码
$ redis-cli  -h [host] -p 8379
> smembers myset
1) "one"
2) "two"
> sscan myset o*
(error) ERR invalid cursor
> sscan myset 0 match o*
1) "0"
2) 1) "one"
> sscan myset 0 match *
1) "0"
2) 1) "one"
   2) "two"
> sscan myset 0 match * count 1
1) "2"
2) 1) "one"
> sscan myset1 0 match "{'i': '[1-9][0-9][0-9]*'}"
1) "0"
2) 1) "{'i': '990', 'i2': '991'}"
复制代码

上面有几点需要解释一下。

1. 获取set的命令需要使用 smember。更多的命令列表参考:

http://www.runoob.com/redis/redis-sets.html

复制代码
Redis 集合命令
下表列出了 Redis 集合基本命令:
序号    命令及描述
1    SADD key member1 [member2] 
向集合添加一个或多个成员
2    SCARD key 
获取集合的成员数
3    SDIFF key1 [key2] 
返回给定所有集合的差集
4    SDIFFSTORE destination key1 [key2] 
返回给定所有集合的差集并存储在 destination 中
5    SINTER key1 [key2] 
返回给定所有集合的交集
6    SINTERSTORE destination key1 [key2] 
返回给定所有集合的交集并存储在 destination 中
7    SISMEMBER key member 
判断 member 元素是否是集合 key 的成员
8    SMEMBERS key 
返回集合中的所有成员
9    SMOVE source destination member 
将 member 元素从 source 集合移动到 destination 集合
10    SPOP key 
移除并返回集合中的一个随机元素
11    SRANDMEMBER key [count] 
返回集合中一个或多个随机数
12    SREM key member1 [member2] 
移除集合中一个或多个成员
13    SUNION key1 [key2] 
返回所有给定集合的并集
14    SUNIONSTORE destination key1 [key2] 
所有给定集合的并集存储在 destination 集合中
15    SSCAN key cursor [MATCH pattern] [COUNT count] 
迭代集合中的元素
复制代码

 

2. 可以看到sscan的返回结果,有两部分,第一部分是一个数字,基本是0,有时候是正数。第二部分是结果。

其实第一部分代表一个游标。scan就是以游标为基础,每次使用scan(包括sscan),以游标0开始,然后命令会返回一个新的游标;如果新的游标不是0,表示遍历还没有结束,要使用新的游标作为参数,继续输入获得后面的结果。

比如下面这个 count 1的时候,遍历没有结束,就会返回非0的游标。后续要使用新的游标来运行命令。

复制代码
> smembers myset
1) "one"
2) "two"
> sscan myset 0 match * count 1
1) "2"
2) 1) "one"
> sscan myset 2 match * count 1
1) "3"
2) 1) "two"
> sscan myset 3 match * count 1
1) "0"
2) (empty list or set)
复制代码

官网的解释可以查看这里:

http://redis.io/commands/scan

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
407 views

3 thoughts on “Redis-SCAN-功能

  1. After study a few of the blog posts on your website now, and I truly like your way of blogging. I bookmarked it to my bookmark website list and will be checking back soon. Pls check out my web site as well and let me know what you think.

  2. This web site is known as a stroll-through for all the info you wanted about this and didn’t know who to ask. Glimpse right here, and also you’ll definitely uncover it.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

跳至工具栏