广杰博客

  • 首页
  • IT资讯
  • IT运维
  1. 首页
  2. IT运维
  3. 正文

redis操作命令中keys和scan使用区别

01/04/2020 2217点热度 2人点赞 0条评论

keys和scan都可以遍历数据库中查找符合特定模式的key
1、KEYS pattern
比如:
keys *
keys cmd*
2、SCAN cursor [MATCH pattern] [COUNT count]
cursor:查询游标,第一次0,后面就是使用返回数组中第一个值,当返回的值为0时则表示遍历完毕。
MATCH pattern:匹配一个表达式,同上,选填。
[COUNT count]:指定每次迭代返回元素的最大值的一种提示(默认值为 10),但是在大多数情况下,
这种提示都是有效的,因此,返回的个数在count左右。
keys
1.没有offset、limit参数,不能限制查询个数
2.keys是遍历算法,复杂度O(n),数据量大的时候会导致redis卡顿
scan
1.复杂度O(n),但是scan是通过游标分步进行,不阻塞
2.提供limit,可控制返回结果数
3.同keys一样,提供模式匹配
4.服务器不需要为游标保存状态,唯一状态是scan返回客户端的游标整数
5.返回结果可能重复,需要客户端去重
6.如果遍历过程中有数据修改,改动后的数据不保证同步
7.单次返回结果是空的,不表示遍历结束,而要看返回的游标值是否为0

Redis 是单线程程序,是按照顺序执行指令的,如果说我们现在正在执行 keys 命令,那么其它指令必须等到当前的 keys 指令执行完了才可以继续,再加上 keys 操作是遍历算法,复杂度是 O (n),当实例中数据量过大的时候,Redis 服务可能会卡顿,其余指令可能会延时甚至超时报错
所以官方的建议是:生产环境屏蔽掉 keys 命令。

标签: redis keys redis scan
最后更新:01/04/2020

guangjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
Red Hat Enterprise Linux 9 发布,大量组件升级 windows10 家庭版添加hyper-v虚拟机组件 Red Hat Enterprise Linux 8.5 GA 发布 Rocky Linux 8.4 GA正式版发布下载 Rocky Linux 8.3 首个候选版本发布 CentOS 8.3 (2011) ISO镜像下载发布 CentOS Linux 落幕 CentOS Stream 上位 CentOS Linux 7.9 (2009) iso镜像下载 Windows 10 2020年10月更新ISO下载 ubuntu ssh通过密钥登陆服务器
wordpress批量开启和关闭评论 div+css在ie8下错误的问题解决 网站被K的现象和原因以及解决方法 rpm 命令 php程序网站顶部出现warning:Cannot modify header information 介绍一款方便的远程管理软件Remote Desktop Connection Manager 驱动程序在 \Device\Harddisk0\D 上检测到控制器错误 防止ASP木马在服务器上运行 wordpress水印插件watermark reloaded测试 谷歌浏览器Chrome 26正式版发布
标签聚合
linux php_curl redhat springboot Windows Server 2012 android Hyper-V nginx
友情链接
  • linux运维
  • 郑州SEO

COPYRIGHT © 2021 gjie.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备07002435号-8