使用 django-redis ( https://niwinz.github.io/django-redis/latest/ ) 库时,有两种方法可以获取 redis 连接
方法一
from django.core.cache import caches
# get redis cache from settings
rcache = caches['redis']
方法二
from django_redis import get_redis_connection
rcache = get_redis_connection("redis")
我的 django 设置看起来像这样
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"LOCATION": MEMCACHED_URL,
"OPTIONS": {
'MAX_ENTRIES': 2000
}
},
"redis": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": REDIS_URL,
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient"
}
}
}
我尝试检查内部结构,看起来 get_redis_connection 使用了连接池,但它返回的对象是 strictredis 客户端,而不是默认客户端——因此不能完全从一个跳转到另一个。
话虽这么说,如果您想在使用django-redis库时使用连接池,有人可以确认使用哪一个吗
注意:我目前使用 memcache 作为默认的 django 缓存后端,redis 用于其他一些缓存目的。
如果问题或描述听起来令人困惑,请告诉我,我可以更新。