首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么redis pub和sub在只打开一个连接的情况下会被认为是不同的客户端?

为什么redis pub和sub在只打开一个连接的情况下会被认为是不同的客户端?
EN

Stack Overflow用户
提问于 2019-03-16 03:03:40
回答 1查看 110关注 0票数 0

为什么即使只创建了Redis连接的一个实例,每次我在该实例上调用publish或subscribe时,它都会将其视为另一个客户端。所以当我使用python连接到redis时

代码语言:javascript
复制
import redis
redis_server = redis.Redis()

它不会将其识别为新客户端。只有当我调用其中的一个时

代码语言:javascript
复制
redis_server.publish("channel", message) 
redis_server.subscribe("channel")

我可以看到有两个客户端已连接。在redis中,发布/订阅客户端是分开处理的吗?为什么不在新连接打开时注册已连接的客户端?

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 19:59:46

默认情况下,redis-py为您提供了一个仅具有最大连接数的连接池。在您发出的第一个命令中,将建立一个真正的连接,您将看到它出现在服务器上的CLIENT LIST中。

每当Redis的任何客户端库发出订阅命令时,整个连接都会被这个命令占用,所以redis-py可能会为这个命令创建一个单独的连接。

这应该解释了为什么您看到没有客户端连接,然后是2。对于发出的每个命令,不一定是1个连接,因为池中的连接将被重用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55189229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档