即使仅创建一个Redis连接实例,但每次我调用该实例的发布或订阅时,它都像另一个客户端一样将其计数。所以当我使用python连接到Redis时
import redis
redis_server = redis.Redis()
它不将其识别为新客户端。只有当我呼叫其中一个
redis_server.publish("channel", message)
redis_server.subscribe("channel")
我看到有2个客户端连接。发布/订阅客户端是否在Redis中得到单独处理?新连接打开后,为什么不注册已连接的客户端?
答案 0 :(得分:0)
默认情况下,redis-py使您获得的连接池仅具有最大个连接。在第一个命令上,您发出一个真实的连接,您将看到它出现在服务器上的CLIENT LIST
中。
每当Redis的任何客户端库发出订阅命令时,整个连接都将被该连接占用,因此redis-py可能会为此创建一个单独的连接。
这应该解释为什么您看不到任何客户机,然后再看到2。这并不是每个发出的命令都有1个连接,因为池中的连接将被重用。