Какой из них использует пулы соединений? 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.
Пожалуйста, дайте мне знать, если вопрос или описание звучит запутанно, я могу обновить.