Какой из них использует пулы соединений? django.core.cache против django_redis.get_redis_connection (при использовании django-redis)

Есть два способа получить соединение redis при использовании django-redis ( https://niwinz.github.io/django-redis/latest/) lib

Способ-1

from django.core.cache import caches
# get redis cache from settings
rcache = caches['redis']

Способ-2

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.

Пожалуйста, дайте мне знать, если вопрос или описание звучит запутанно, я могу обновить.

0 ответов

Другие вопросы по тегам