2015-02-04 2 views
2

redis (redis에서 단 하나의 db)를 사용하는 django 프로젝트가 있습니다.django에서 redis 연결을 관리하는 올바른 방법

내 settings.py 파일에서

, 내가 가진 : 현재

나는 이렇게

from redis import Redis 
REDIS_CONNECTION = Redis() 

언제 내가 다른 응용 프로그램에서 내 많은 views.py 파일에이 연결을 (전화를 걸 프로젝트) 나는 이렇게한다 :

from django.conf import settings 
settings.REDIS_CONNECTION.lpush("testlist", "hello") 

이 방법에 문제가 있습니까? 불필요한 경우 redis에 대한 새로운 연결을 계속 만들고 싶지 않습니다. 공식 패키지 문서에서

답변

4

: 장면 뒤에

는 레디 스 - 평은 레디 스 서버에 연결을 관리하기 위해 연결 풀을 사용합니다. 기본적으로 생성하는 각 Redis 인스턴스는 자체 연결 풀을 차례로 생성합니다. 이미 생성 된 연결 풀 인스턴스를 Redis 클래스의 connection_pool 인수에 전달하여이 동작을 무시하고 기존 연결 풀을 사용할 수 있습니다. 클라이언트 측 샤딩을 구현하거나 연결 관리 방법을보다 세밀하게 제어하기 위해이를 수행하도록 선택할 수 있습니다.

pool = ConnectionPool(host='localhost', port=6379, db=0) 
r = Redis(connection_pool=pool) 

: 당신이 새로운 인스턴스를 중앙 집중화 된 장소에서 하나의 인스턴스를하고 새 인스턴스를 만들 때마다 그것을 통과, 중앙 풀을 사용하려면

(https://pypi.python.org/pypi/redis/ 참조) 겸손한 의견 (전문가가 아님)에서는 성능 문제가 발생할 때 과 같이 작업 한 기본 방식을 계속 사용하고 있습니다.

최적화 최적화는 최적화 IMO보다 좋지 않을 수 있습니다.

+0

정답에 대한 찬성 투표를 할 수 있습니까? :) – bitoiu

+0

upvote granted. – noahandthewhale

관련 문제