캐시 된 데이터를 가져 오기위한 거의 모든 장고보기에서 쿼리하는 Redis 서버가 있습니다. 일부 stackoverflow 질문에 대한 독서를 한 모든 웹 요청마다 r = redis.StrictRedis(host='localhost', port=6379, db=0)
통해 새 Redis 연결을 만드는 나쁜 및 연결 풀링을 사용해야합니다 것을 배웠습니다.Django & Redis : 연결 풀링을 올바르게 사용하려면 어떻게해야합니까?
# Redis Settings
import redis
REDIS_CONN_POOL_1 = redis.ConnectionPool(host='localhost', port=6379, db=0)
:이 전역 변수처럼 그대로
settings.py
에서
그래서 어떤 장고보기 쉽게 올려 수 있습니다 여기에
장고에서 연결 풀링에 대한 내가 해낸 방법입니다 일부views.py
:
from django.conf import settings
REDIS_CONN_POOL_1 = settings.REDIS_POOL_1
r = redis.Redis(connection_pool=REDIS_CONN_POOL_1)
r.get("foobar") # Whatever operation
그래서, 내 질문은 :이 장고에 연결 풀링을 할 수있는 올바른 방법인가? 비슷한 시나리오를 경험 한 사람들을 위해 더 나은 접근 방법이 있습니까? 이것은 모든 요청에 대해 새 연결을 열고 닫는 기존 방식보다 낫습니다.
EDIT :이 모든 요청에 대해 새 연결을 여는 것이 왜 잘못 되었는가에 대한 이해를 얻었습니다. stackoverflow question.
. 'django.core.cache import cache'를 통해 작업을 수행 할 때 여러 DB를 지정하거나 DB간에 전환하는 방법에 대한 아이디어가 있습니까? 내가 Django redis cache docs를 읽었을 때 우리는 하나의 DB만을 지정할 수있다. – user1757703
글쎄, DB 수는 12로 제한되어 있습니다. 키 접두사를 사용하는 것이 훨씬 쉽습니다. 당신은 자신의 도우미 방법을 써서 많이 들키지 않고 도달 할 수 있습니다. 왜 그런 식으로 DB를 배가 할 필요가 있습니까? – martincpt
데이터 형식에 따라 여러 데이터베이스로 데이터를 구성하기 때문에 여러 개의 DB가 필요합니다. – user1757703