android开发实战 微信小程序教程 JAVA学习 springcloud LeetCode matlotlib ssh命令 wxRuby scroll gdb 管理后台框架 swift视频教程 matlab求向量的模 cad正在执行命令 kubernetes视频 python多线程编程 python中len函数 python中for循环的用法 python图形界面开发 python函数参数 python程序实例 javapackage java语法 java文件写入 java连接mysql数据库 java开发语言 typemonkey 一键换系统 华为交换机学习指南 刷声望 无线网密码修改 fabfilter cdr裁剪工具怎么用 重复文件查找 vivado下载 ps魔棒快捷键 python贪吃蛇 凯立德导航地图 dataformatstring linux解压rar
当前位置: 首页 > 学习教程  > 编程语言

redis遍历键

2021/2/13 17:13:31 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

redis 遍历键 1、全量遍历键 ​ keys patten ​ keys * 遍历所有的键 *代表匹配任意字符 ?代表匹配一个字符 【】代表匹配部分字符,例如【1,3】代表匹配1,3,【1-10】代表匹配1到10的任意数字 如果有键hello和hill,可以使用 k…

redis 遍历键

1、全量遍历键

​ keys patten

​ keys * 遍历所有的键

  • *代表匹配任意字符

  • ?代表匹配一个字符

  • 【】代表匹配部分字符,例如【1,3】代表匹配1,3,【1-10】代表匹配1到10的任意数字

    如果有键hello和hill,可以使用 keys h?ll 进行匹配*

由于redis是单线程的如果使用keys *遍历所有的键会造成redis阻塞,所以一般不建议在生产上使用这个命令。如果一定要遍历所有的键,要使用scan命令渐进式的遍历所有的键,可以有效防止阻塞。

2、渐进式遍历

scan命令能够有效的解决keys命令存在的问题。和keys命令执行是会遍历所有键不同,scan采用渐进式的遍历方式来解决keys命令可能带来的阻塞问题,每次scan的时间复杂度都是O(1),但要实现keys的功能,需要多次执行scan,Redis存储键值对实际使用的是hashtable的数据结构。scan的使用方法如下:

scan cursor [match pattern] [count number]

cursor是必须参数,实际上cursor是一个游标,第一次遍历从0开始,每次scan遍历完都会返回当前游标的值,直到游标值为0,表示遍历结束。

match pattern 是可选参数,他的作用是做模式的匹配,这点和keys 的模式匹配很像。

count number是可选参数,它的作用是表明每次要遍历的键个数,默认值是10,此参数可以适当增大。

除了scan以外,Redis还提供了面向哈希类型、集合类型、有序集合的扫描遍历命令,解决hgetall、smembers、zrange可能产生的阻塞问题。对应的命令分别为,hscan、sscan、zscan,它们的用法和scan类似。


本文链接: http://www.dtmao.cc/news_show_700094.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?