我有一个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的每个请求开启新连接的错误的理解.