Redis-sentinel ошибка подключения в django с "AUTH <password> вызван без какого-либо пароля, настроенного для пользователя по умолчанию. Вы уверены ..."

У меня проблема с подключением redis-sentinel.
Я пытался подключить redis-sentinel с помощью django-redis.

# redis connection factory
DJANGO_REDIS_CONNECTION_FACTORY = 'django_redis.pool.SentinelConnectionFactory'

# These sentinels are shared between all the examples, and are passed
# directly to Redis Sentinel. These can also be defined inline.
SENTINELS = [
    (env('REDIS_SENTINEL_IP_1'), 26379),
    (env('REDIS_SENTINEL_IP_2'), 26379),
    (env('REDIS_SENTINEL_IP_3'), 26379)
]

CACHES = {
    "default": {
        "BACKEND": env('DJANGO_CACHE_BACKEND_REDIS'),
        # THE HOSTNAME IN LOCATION is the primary (service/master) name
        # example : redis://dev-redis/db
        # example : redis://staging-redis/db
        "LOCATION": env('DJANGO_CACHE_LOCATION_REDIS'),
        "OPTIONS": {
            # django_redis.client.SentinelClient
            "CLIENT_CLASS": env('DJANGO_CACHE_CLIENT_CLASS'),
            "SENTINELS": SENTINELS,
            "SENTINEL_KWARGS":{'password':env('REDIS_PASSWORD_VALUE')},
            'PASSWORD': env('REDIS_PASSWORD_VALUE'),
            "CONNECTION_POOL_CLASS": "redis.sentinel.SentinelConnectionPool",
        },
        "KEY_PREFIX": "mapsvc"
    }
}

Это мой settings.py.
и мое окружение находится
на кластере kubernetes
а redis-sentinel - это узел, который может получить доступ к кластеру kubernetes.

Я попытался подключиться к мастеру в kubernetes pod.
используйте эту команду redis-cli -h {master-ip} -p 6379 -a {password}
и это работает! но django не может подключиться к redis-sentinel.

и он напечатал

ERROR - create_cache: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?

Версия сервера redis - 6.2.6.
а версия django-redis - 5.2.0.

и я также пробовал без "CONNECTION_POOL_CLASS": "redis.sentinel.SentinelConnectionPool", настроек в settings.py.

Пожалуйста, помогите мне.

У меня возникла такая же проблема при подключении к redis из моего кода на python в docker. Оказалось, что я вытащил образ redis с помощью этой команды из терминала:

docker run --name my-redis -p 6379:6379 -d redis

Как вы можете видеть, пароль не был настроен.

Я удалил этот образ и запустил другой с помощью следующей команды:

docker run --name my-redis -p 6379:6379 -d redis --requirepass "MyPassWord"

Теперь, когда я инициирую экземпляр redis, используя пароль, с запущенным контейнером, он успешно подключается.

Вернуться на верх