У меня есть сервер Redis, который я запрашиваю почти для каждого представления Django для получения некоторых кэшированных данных. Я прочитал несколько вопросов о stackoverflow и узнал, что создание нового Redis-соединения через r = redis.StrictRedis(host='localhost', port=6379, db=0)
для каждого отдельного веб-запроса является плохим и что я должен использовать пул соединений.
Вот такой подход, который я придумал для объединения пулов в Django:
В settings.py
чтобы я мог легко подтянуть его в любом представлении Django, поскольку это похоже на глобальную переменную:
# Redis Settings
import redis
REDIS_CONN_POOL_1 = redis.ConnectionPool(host='localhost', port=6379, db=0)
В некоторых 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
Итак, мой вопрос: правильно ли это сделать пул соединений в Django? Есть ли какие-то лучшие подходы, которые вы, ребята, используете для тех, кто испытал подобный сценарий? Вероятно, это лучше, чем мой старый подход открытия и закрытия нового соединения redis по каждому запросу.
EDIT: собрал мое понимание о том, почему неправильно открывать новое соединение по каждому запросу из этого qaru.site/info/164690/....