1

使用 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 用于其他一些缓存目的。

如果问题或描述听起来令人困惑,请告诉我,我可以更新。

4

0 回答 0