gpt4 book ai didi

django - 如何成功将 Django 连接到 Azure Redis 缓存?

转载 作者:行者123 更新时间:2023-12-03 00:54:19 26 4
gpt4 key购买 nike

我有一个 django 应用程序,刚刚从 Digital Ocean 迁移到 MS Azure,并且该应用程序在 Azure 上完美运行。但是,我正在努力使用 Azure Cache for Redis 服务实现缓存后端。

我在settings.py中有以下配置:

    CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": f"redis://<my_redis_service_name>.redis.cache.windows.net:6380,password={secrets.AZURE_REDIS_PASSWORD},ssl=True,abortConnect=False",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"COMPRESSOR": "django_redis.compressors.zlib.ZlibCompressor",
},
}
}

我已将我的 redis 服务名称替换为 <my_redis_service_name> .

使用此设置和 DEBUG=True,我收到错误:

ValueError at /accounts/login/
Redis URL must specify one of the following schemes (redis://, rediss://, unix://)

奇怪,因为 redis://位于网址中。我已验证 key ,并确保 redis 服务防火墙接受我的虚拟机的 IP4 地址,并确保虚拟机上的端口 6380 已打开。我还尝试了连接字符串的各种排列,例如:

"LOCATION": f'redis://:{secrets.AZURE_REDIS_PASSWORD}@<my_redis_service_name>.redis.cache.windows.net:6380,ssl=True,abortConnect=False',

运气不好。如果相关的话,我正在使用 Django 4.0.7、Python 3.8、django-cachalot 和 jazzband 的 django-redis 包。 Azure Redis 缓存声明它使用 Redis 版本 6.0.14。就其值(value)而言,我的开发环境与位于 "LOCATION": "redis://127.0.0.1:6379/1", 的本地守护进程化 Redis 缓存配合得很好。 。任何帮助表示赞赏。

最佳答案

由于 SSL 在 AZURE REDIS 上是强制性的,因此您需要执行以下操作:

CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
"LOCATION": 'rediss://YOUR_REDIS_HOST_NAME:YOUR_REDIS_PORT',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
'PASSWORD': 'YOUR_REDIS_PASSWORD',
'SSL': True
}
}
}

注意:正如 django_redis 自述文件中提到的,如果我们想要 SSL 连接,我们使用 rediss://

关于django - 如何成功将 Django 连接到 Azure Redis 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73724755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com