redis之Scan
scan 相比
keys 具备有以下特点:
1、复杂度虽然也是 O(n),但是它是通过游标分步进行的,不会阻塞线程;
2、提供 limit 参数,可以控制每次返回结果的最大条数,limit 只是一个 hint,返回的
结果可多可少;
3、同 keys 一样,它也提供模式匹配功能;
4、服务器不需要为游标保存状态,游标的唯一状态就是 scan 返回给客户端的游标整数;
5、返回的结果可能会有重复,需要客户端去重复,这点非常重要;
6、遍历的过程中如果有数据修改,改动后的数据能不能遍历到是不确定的;
7、单次返回的结果是空的并不意味着遍历结束,而要看返回的游标值是否为零
scan 参数提供了三个参数,第一个是 cursor 整数值,第二个是 key 的正则模式,第三
个是遍历的 limit hint。第一次遍历时,cursor 值为 0,然后将返回结果中第一个整数值作为
下一次遍历的 cursor。一直遍历到返回的 cursor 值为 0 时结束。
127.0.0.1:6379> scan 0 match key99* count 1000
1) "13976"
2) 1) "key9911"
2) "key9974"
3) "key9994"
4) "key9910"
5) "key9907"
6) "key9989"
7) "key9971"
8) "key99"
9) "key9966"
10) "key992"
11) "key9903"
12) "key9905"
127.0.0.1:6379> scan 13976 match key99* count 1000
1) "1996"
2) 1) "key9982"
2) "key9997"
3) "key9963"
4) "key996"
5) "key9912"
6) "key9999"
7) "key9921"
8) "key994"
9) "key9956"
10) "key9919"
127.0.0.1:6379> scan 1996 match key99* count 1000
1) "12594"
2) 1) "key9939"
2) "key9941"
3) "key9967"
4) "key9938"
5) "key9906"
6) "key999"
7) "key9909"
8) "key9933"
9) "key9992"
......
127.0.0.1:6379> scan 11687 match key99* count 1000
1) "0"
2) 1) "key9969"
2) "key998"
3) "key9986"
4) "key9968"
5) "key9965"
6) "key9990"
7) "key9915"
8) "key9928"
9) "key9908"
10) "key9929"
11) "key9944"
最新文章
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
- XSD笔记
- delphi 连接MYSQL 的方法
- 观察者模式最佳案例实现[JAVA][原创]
- 抓取天涯文章的蜘蛛代码,刚经过更新(因为天涯页面HTML代码变化)
- 温习H3C S5500的VLAN配置
- 图文混排——用表情代替";[文字]";
- 使用CSS达到阴阳八卦图等图形
- smartcn与IKanalyzer
- struts2防止重复提交的标签
- Linux启动kettle及linux和windows中kettle往hdfs中写数据(3)
- 轻量级quill富文本编辑器
- Windows系统下文件的概念及c语言对其的基本操作(甲)
- Github上的Android项目介绍之ListViewAnimation(针对listView item的侧滑菜单)(1)
- 17.app后端如何保证通讯安全--aes对称加密
- asp.net mvc 简单项目框架的搭建(二)—— Spring.Net在Mvc中的简单应用
- Saslauthd服务实现SMTP发信认证
- HTTP协议的六种请求方法
- Nodejs入门【转载】保留备用
- Vue2.5开发去哪儿网App 城市列表开发