如何使用aioredis-py生成Azure Redis Service URI并建立连接
问题原因
你的同步版代码显式开启了SSL连接配置,而aioredis的实现中没有开启SSL,导致连接到Azure Redis Cache的6380 SSL端口时,服务端主动断开了非SSL的连接请求,触发ConnectionResetError。
修复方案
有两种常用修复方式:
方案1:修改URL协议头
aioredis会自动识别rediss://前缀开启SSL连接,只需要把原URL的redis://替换为rediss://即可:
import asyncio import aioredis async def main(): redis = aioredis.from_url("rediss://def@abc.redis.cache.windows.net:6380") return await redis.ping() res = asyncio.run(main())
方案2:显式传入SSL参数
如果要保留redis://前缀,也可以在调用from_url时手动添加ssl=True参数:
async def main(): redis = aioredis.from_url("redis://def@abc.redis.cache.windows.net:6380", ssl=True) return await redis.ping() res = asyncio.run(main())
补充说明
Azure公共Redis服务使用公共CA签发的SSL证书,不需要额外配置证书校验逻辑即可正常连接,如果是自建Redis使用自签名证书,需要额外传入ssl相关配置参数完成证书校验。
内容的提问来源于stack exchange,提问作者Mysterio
相关产品推荐
相关产品推荐

