gpt4 book ai didi

python - 当只打开一个连接时,为什么 redis pub 和 sub 被认为是不同的客户端?

转载 作者:可可西里 更新时间:2023-11-01 11:23:45 27 4
gpt4 key购买 nike

为什么即使只创建了一个 Redis 连接实例,每次我对该实例调用发布或订阅时,它也将其视为另一个客户端。所以当我使用 python 连接到 redis 时

import redis
redis_server = redis.Redis()

它不承认它是新客户。只有当我调用其中之一时

redis_server.publish("channel", message) 
redis_server.subscribe("channel")

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

最佳答案

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

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

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

关于python - 当只打开一个连接时,为什么 redis pub 和 sub 被认为是不同的客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55189229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com