tornado-redis 指定主机(host)和端口(port)在连接池取连接还是用默认IP端口的问题

 记录一下tornado-redis遇到从连接池拿连接的时候,tornado-redis 会才用默认IP端口连接(localhost  6379)导致连接失败的问题。

首先声明,这玩意我没细看,使用python时间也步长,只是简单暴力修改,可能不对或者造成其他问题请自行斟酌。

主要问题是,当使用  tornadoredis.Client(connection_pool=CONNECTION_POOL) 取连接的时候会直接报错,当然如果你redis都是默认的参数,没修改端口不会报错。

大致看了下(主要看不太懂),问题跟踪如下:

 \Python27\Lib\site-packages\tornadoredis\client.py

onnection = (connection_pool
.get_connection(event_handler_ref=self._weak))

来到:

\Python27\Lib\site-packages\tornadoredis\connection.py

connection = self.make_connection

再进入:

return Connection(** self.connection_kwargs)

这里直接是新建了连接,但是并没有传递相关参数过去。这里我打印了host和端口就是系统默认的localhost 和 6379

修改如下:

涉及文件:\Python27\Lib\site-packages\tornadoredis\connection.py

1.

connection = self.make_connection()
替换为:
connection = self.make_connection(host=host, port=port)

2.

def make_connection(self):
替换为:
def make_connection(self,host, port):

3.

return Connection(** self.connection_kwargs)

替换为:

return Connection(host=host, port=port)

涉及文件:\Python27\Lib\site-packages\tornadoredis\client.py

1.

.get_connection(event_handler_ref=self._weak))
替换为:
.get_connection(host=host, port=port,event_handler_ref=self._weak))

另外:

修复 Tornadoredis 兼容 Tornado5.1 :https://blog.526net.com/?p=3229

发表评论

您的电子邮箱地址不会被公开。