前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis scan命令

redis scan命令

作者头像
johnhuster的分享
发布2022-03-29 14:40:23
5860
发布2022-03-29 14:40:23
举报
文章被收录于专栏:johnhuster

redis是当前使用很广泛的一款内存key-value软件,有时需要查询下目前redis内存里面有哪些满足条件的键值,在线上系统一定不要使用keys命令,该命令会导致redis停止一切工作,如果redis键值要很多的话会导致redis长时间内都不会响应其他任何命令,这个时候scan命令就呼之欲出了,scan命令可以达到keys命令的效果同时又不会redis出现类似stop-the-world事件的发生,

SCAN 命令是一个基于游标的迭代器(cursor based iterator): SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。

scan命令格式:

SCAN cursor [MATCH pattern] [COUNT count]

如果省略count参数的话,默认只返回一部分数据,为了返回全部key,可以将count设置的大些

127.0.0.1:7006> scan 0 match h* count 100 1) "0" 2) 1) "he2lo" 2) "h22" 3) "h16" 4) "h3lo" 5) "h0lo" 6) "h2" 7) "he8lo" 8) "h6" 9) "h7lo" 10) "h26" 11) "h12" 12) "he5lo" 13) "hello" 执行scan命令后,返回了13条数据,说明满足条件的键值有13个,第一个返回值1) "0"说明已经遍历完所有键值,下面执行下分页操作:

127.0.0.1:7006> scan 0 match h* count 10 1) "9" 2) 1) "he2lo" 2) "h22" 3) "h16" 4) "h3lo" 5) "h0lo" 6) "h2" 7) "he8lo" 8) "h6" 9) "h7lo" 上述scan命令返回的9表示可以使用这个游标位置继续搜索,

127.0.0.1:7006> scan 9 1) "0" 2) 1) "h26" 2) "h12" 3) "he5lo" 4) "hello" 127.0.0.1:7006>

OK,到此结束,与scan类似的命令还有:

  • SCAN 命令用于迭代当前数据库中的数据库键。
  • SSCAN 命令用于迭代集合键中的元素。
  • HSCAN 命令用于迭代哈希键中的键值对。
  • ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)。

PS:不同版本redis命令可能会略有不同,执行前可以使用help scan查看具体命令

参考文章:

1、http://doc.redisfans.com/key/scan.html

2、http://redisdoc.com/database/scan.html#scan

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档