记录一下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