首页 > 解决方案 > 为什么我的 redis 命令键不会阻止我的其他操作

问题描述

从很多博客,我了解到redis命令keys *可能会阻塞redis服务器,其他命令不能按时执行。

但是,今天我keys *在我的数据库上运行它,它有大约 800 万个数据。然后我使用我的其他客户端执行其他命令,例如getor set,这一切都很好,并按时给出响应。

所以,我很困惑为什么我的命令keys没有阻止。

图片是https://i.stack.imgur.com/8flt4.png

标签: redisredis-cli

解决方案


KEYS(以及几乎所有其他 Redis 命令)正在阻塞,不要被愚弄:)

当 Redis 扫描其内部字典并组装响应时,它被阻止了。但是,在响应准备好并移动到网络层后,服务器可以自由处理接下来的操作。同时,您的客户端从发送KEYS到收到整个响应都被阻止。


推荐阅读