Redis 不使用 keys 命令获取键值信息的方法
2018-08-12 11:36
801 查看
1. 问题来源
这个问题可能看起来很奇怪,但很多 redis 集群会有一个统一的入口,入口会作兼容 redis 命令的代理,一般出于新能考虑是禁止使用 keys 命令来获取键值信息的,但是可以通过 scan 命令来代替 keys
2. 使用 keys 的方法
127.0.0.1:6379> KEYS * 1) "_kombu.binding.test_queue" 2) "a8e620b9-e52e-3498-8a1c-448f35783058" 3) "_kombu.binding.celery"
3. 使用 scan 的方法
127.0.0.1:6379> DBSIZE (integer) 3 127.0.0.1:6379> SCAN 0 MATCH * COUNT 3 1) "5" 2) 1) "a8e620b9-e52e-3498-8a1c-448f35783058" 2) "_kombu.binding.test_queue" 3) "_kombu.binding.celery"
简单说明
SCAN 命令 (以及相关的 SSCAN/HSCAN/ZSCAN,分别用于 SET/HASH/ZSET) 用于增量式的遍历一个集合中的元素。因为其增量特性 (每次使用只返回一小部分元素),所以在生产环境中可以用来替代 KEYS 或 SMEMBERS 命令 (KEYS 或 SMEMBERS 命令可能会因为返回的元素过多而阻塞 redis)
所以在生产环境中即便 redis 服务支持 keys 命令,也应该用 scan 来代替
参考:
1. https://groups.google.com/forum/#!topic/redis-db/zZeI_PjHF_M
2. https://redis.io/commands/scan
总结
以上所述是小编给大家介绍的Redis 不使用 keys 命令获取键值信息的相关知识,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会就及时回复大家的!
您可能感兴趣的文章:
相关文章推荐
- 详解PHP fsockopen的使用方法(获取页面的头信息)
- 使用ps命令获取Linux环境下全部RAC集群进程信息
- 使用CreateToolhelp32Snapshot获取指定进程详细信息的方法
- 分享 silverlight oob模式下, 获取本地打印机信息类 和 使用方法
- 使用text方法获取Html元素文本信息示例
- 使用ps命令获取Linux环境下全部RAC集群进程信息
- Request获取URL各种信息的方法及Request.UrlReferrer的使用
- JS使用ajax方法获取指定url的head信息中指定字段值的方法
- 通过包名获取签名信息工具及使用方法
- java system类使用方法示例 获取系统信息
- 灵活使用getconf命令来获取系统信息
- (转载)一些查看系统信息的工具命令使用方法
- python使用wmi模块获取windows下硬盘信息的方法
- 使用text方法获取Html元素文本信息示例
- 用DOS命令查看完整的Windows系统信息方法 锁定计算机命令 快捷键使用 及结束进程
- python使用wmi模块获取windows下硬盘信息的方法
- Request获取URL各种信息的方法及Request.UrlReferrer的使用
- redis学习笔记5,键值相关命令+Redis高级使用特性
- 获取操作系统CPU及内存使用信息的另一种方法
- linux下获取命令执行后的返回信息方法