Redis不使用 keys 命令获取键值信息的方法
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>SCAN0MATCH*COUNT3 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命令获取键值信息的相关知识,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会就及时回复大家的!
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短