首页 > 数据库 >【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer'

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer'

时间:2023-02-03 18:05:25浏览次数:58  
标签:reset Redis cache redis django 6380 Azure

问题描述

使用Python连接Azure Redis服务,因为在代码中使用的是Djange-redis组件,所以通过如下的配置连接到Azure Redis服务:

CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://xxxxxxxxx.redis.cache.chinacloudapi.cn:6380/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}

但是当部署到AKS中后,发现一直报错 [ERROR][testdjangeredis.py:109]Error while reading from xxxxxxxxx.redis.cache.chinacloudapi.cn:6380 : (104, 'Connection reset by peer')

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104,

 

问题解答

查看Django-redis的官方文档,对 cache backend 中Location的介绍为:

URL 格式举例

  1. redis://[:password]@localhost:6379/0
  2. rediss://[:password]@localhost:6380/0
  3. unix://[:password]@/path/to/socket.sock?db=0

支持三种 URL scheme :

  • redis://: 普通的 TCP 套接字连接
  • rediss://: SSL 包裹的 TCP 套接字连接
  • unix://: Unix 域套接字连接

指定数据库数字的方法:

  • db 查询参数, 例如: redis://localhost?db=0
  • 如果使用 redis:// scheme, 可以直接将数字写在路径中, 例如: redis://localhost/0

在仔细对比配置,发现连接Azure Redis的时候使用SSL 6380端口,而Djange-Redis的配置中 scheme 还继续使用的 redis://,而不是rediss://,所以导致 Connection reset。

为了解决以上问题,直接修改Location设置为:rediss://xxxxxxxxx.redis.cache.chinacloudapi.cn:6380/1 即可!

CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "rediss://xxxxxxxxx.redis.cache.chinacloudapi.cn:6380/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}

 

 

附录一:在机器人ChatGPT中寻求 djange_redis 配置答案

问题一:如何配置djange_redis:

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104,

 

问题二:如何设置Djange_redis的超时时间

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104,

问题三:如何设置djange_redis的keep_alive

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104,

 

问题四:如何启用djange_redis SSL

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104,

 

问题五:启用django-redis的SSL并通过6380端口连接示例

【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104,

 

 

参考资料

django-redis 中文文档:​​https://django-redis-chs.readthedocs.io/zh_CN/latest/index.html​

 


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

标签:reset,Redis,cache,redis,django,6380,Azure
From: https://blog.51cto.com/u_13773780/6035962

相关文章

  • 虹科产品 | 使用Redis企业版数据库为MySQL增添魅力!
    MySQL读取数据慢?难以轻松扩展?数据搜索效率低?无法实时分发数据集?针对以上问题,虹科Redis企业版数据库的解决方案来了!企业如果将Redis企业版数据库与MySQL一起使用,可以实现......
  • 使用Azure云应用发送Office365Email
    Office365旧版发送邮件是直接使用明文账号密码SMTP发送邮件,近期微软为了安全考虑,将限制这种方式,改用OAuth2.0.netcore代码1publicclassOffice365Email2......
  • Redis数据结构
    1.SDSstructsdshdr{//记录buf数组中已使用字节的数量//等于SDS所保存字符串的长度intlen;//记录buf数组中未使用字节的数量intfree;/......
  • K8s Helm部署redis高可用
    一、HelmHelm是Kubernetes应用的包管理工具,主要用来管理Charts,类似Linux系统的yum。HelmChart是用来封装Kubernetes原生应用程序的一系列YAML文件。可以在你部署......
  • Redis-exporter部署及集群监控
    Redis-exporter服务端口:9121部署安装包:redis_exporter-v1.33.0.linux-amd64.tar.gz运行条件:go环境安装go:yuminstall-yepel-releaseyuminstall-ygolang下载......
  • Redis布隆过滤器
    一:什么是布隆过滤器布隆过滤器(BloomFilter)是Redis4.0版本提供的新功能,它被作为插件加载到Redis服务器中,给Redis提供强大的去重功能。当布隆过滤器判定某个值......
  • Redis启动服务报错:服务没有及时响应启动或者控制请求
    Redis启动服务报错:服务没有及时响应启动或者控制请求,解决方案之一1、问题:在redis.conf文件修改密码之后,重启服务报错:服务没有及时响应启动或者控制请求;2、原因:redi......
  • 【Redis】缓存穿透、击穿和雪崩
    目录Redis的缓存穿透概念解决方案存在的问题Redis的缓存击穿概念:解决方案Redis的缓存雪崩概念:解决方案Redis的缓存穿透缓存穿透前提是:Redis和MySQL中都没有,然后不停的直......
  • Redis面试题整理
    Redis是单线程还是多线程?Redis6.0的版本之前的单线程是指网络IO和键值对读写是由单个线程去完成的.而Redis6.0增加的多线程,是指Redis在网络请求的情况下是采用了多线......
  • 【Redis集群】如何配置主从复制模式?
    目录前言概念环境配置(单机集群)基本查看命令开启三台服务前言默认情况下,每台Redis服务器都是主节点;由于个人服务器性能原因,以下的所有操作都是单机集群的概念!在实际工作......