【发布时间】:2015-02-09 07:18:16
【问题描述】:
我有一个 Redis 服务器,我在几乎每个 Django 视图上查询它以获取一些缓存数据。我已经阅读了一些 stackoverflow 问题,并了解到通过 r = redis.StrictRedis(host='localhost', port=6379, db=0) 为每个 Web 请求建立新的 Redis 连接是不好的,我应该使用连接池。
这是我为 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 的新连接的旧方法更好。
编辑:收集了我对为什么在来自 stackoverflow question 的每个请求上打开新连接是错误的理解。
【问题讨论】: