作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!