云服务器网:购买云服务器和VPS必上的网站!

Redis不使用 keys 命令获得键值信息的方法

1. 问题来源
这个问题可能看起来很奇怪,但很多 redis 集群会有一个统一的入口,入口会作兼容 redis 命令的代理,一般出于新能斟酌是制止使用 keys 命令来获得键值信息的,但是可以通过 scan 命令来代替 keys
2. 使用 keys 的方法1

1. 问题来源

这个问题可能看起来很奇怪,但很多 redis 集群会有一个统一的入口,入口会作兼容 redis 命令的代理,一般出于新能斟酌是制止使用 keys 命令来获得键值信息的,但是可以通过 scan 命令来代替 keys

2. 使用 keys 的方法

127.0.0.1:6379> KEYS *
1) “_kombu.binding.test_queue”
2) “a8e620b9-e52e⑶498⑻a1c⑷48f35783058”
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⑶498⑻a1c⑷48f35783058"
 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/
2. https://redis.io/commands/scan

总结

以上所述是小编给大家介绍的Redis 不使用 keys 命令获得键值信息的相关知识,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会就及时回复大家的!

本文来源:https://www.yuntue.com/post/151053.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注