[REDIS] 레디 스 파이썬에서 다중 연결을 생성 및 관리
REDIS레디 스 파이썬에서 다중 연결을 생성 및 관리
나는 두 개의 데이터베이스를 저장하는 레디 스를 사용하고 있습니다 : 0과 1을 레디 스-PY 클라이언트 라이브러리를 통해. 나는 각 데이터베이스에 대해 두 개의 연결을 생성하고 싶습니다. 현재, 나는이 일을하고있다 :
>>> connection0 = redis.Connection(host = 'localhost', port = 6379, db = 0)
>>> connection1 = redis.Connection(host = 'localhost', port = 6379, db = 1)
>>> connection0.connect()
그러나, 나는 연결에서 레디 스 객체를 생성 할 수있는 방법을 찾을 수가 없습니다.
>>> store0 = redis.Redis(connection0)
>>> store0.info()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/redis-2.4.11-py2.7.egg/redis/client.py", line 341, in info
return self.execute_command('INFO')
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/redis-2.4.11-py2.7.egg/redis/client.py", line 278, in execute_command
connection.send_command(*args)
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/redis-2.4.11-py2.7.egg/redis/connection.py", line 258, in send_command
self.send_packed_command(self.pack_command(*args))
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/redis-2.4.11-py2.7.egg/redis/connection.py", line 241, in send_packed_command
self.connect()
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/redis-2.4.11-py2.7.egg/redis/connection.py", line 187, in connect
sock = self._connect()
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/redis-2.4.11-py2.7.egg/redis/connection.py", line 198, in _connect
sock.connect((self.host, self.port))
File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
TypeError: coercing to Unicode: need string or buffer, Connection found
나는 여기에 신인 실수를하고 있습니까?
해결법
-
==============================
1.당신은 정말 그런 연결을 생성하지 않아야합니다. 나를 레디 스-PY 문서를 인용 해보자.
당신은 정말 그런 연결을 생성하지 않아야합니다. 나를 레디 스-PY 문서를 인용 해보자.
>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0) >>> r = redis.StrictRedis(connection_pool=pool)
당신은 라이브러리를 사용하는 단일 연결을 지정할 수 없습니다. 각 레디 스 인스턴스는 자신의 연결 풀을해야합니다. execute_command ()가 호출 될 때, 그것은 풀에서 연결을 팝업 (또는 새로 열) 및 해당 연결을 사용합니다. 만 원하는 경우 클라이언트는 1 번에 최대 하나의 연결, 설정 MAX_CONNECTIONS을 가지고 있습니다.
from https://stackoverflow.com/questions/8984870/creating-and-managing-multiple-connections-in-redis-python by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 값없이 레디 스 저장소 키 (0) | 2020.01.14 |
---|---|
[REDIS] 레디 스 단일 스레드 인 이유 (이벤트 구동) (0) | 2020.01.14 |
[REDIS] 해시 키 이름에 따라 대량으로 삭제 레디 스의 해시 값 (0) | 2020.01.14 |
[REDIS] 이동할 수있는 빠른 방법은 MySQL로 데이터를 레디 스 (0) | 2020.01.14 |
[REDIS] 레디 스 및 쿼리 값 (0) | 2020.01.14 |