我的应用程序托管在Azure中,我正在使用Azure Redis缓存。
RedisClient版本 Redis.StrongName-1.2.6 .Net Core-2.1 .Net Framework 4.7.1
我的应用程序出现间歇性的Redis连接异常,并且在我重新启动应用程序服务后得到解决。 我有1个-次要实例和1个-主实例,该实例具有6GB容量的Redis缓存
这是我从客户那里得到的例外情况
外部消息: 没有连接可用于执行此操作:HSETNX KEYNAME;套接字在我的REDIS SERVER NAME上关闭/交互,起源:ProcessReadBytes,输入缓冲区:0,未完成:0,最近一次读取:0s之前,最后一次写入:0s之前,未答复的写入:280531s之前,keep-alive:60s,暂挂:0,状态:Connected,建立于:0,ar:0,last-heartbeat:0s之前,last-mbeat:0s之前,global:0s之前,mgr:未激活,err:从不; IOCP :(忙= 1,免费= 999,最小值= 8,最大值= 1000),工作人员:(忙= 1,免费= 32766,最小值= 8,最大值= 32767),本地CPU:不适用
内部消息: 套接字在我的REDIS SERVER NAME上关闭/交互,起源:ProcessReadBytes,输入缓冲区:0,未完成:0,最近一次读取:0s之前,最后一次写入:0s之前,未答复的写入:280531s之前,keep-alive:60s,未决:0,状态:Connected已建立,在:0,ar:0,last-heartbeat:0s之前,last-mbeat:0s之前,全局:0s之前,mgr:无效,err:永不
不确定发生了什么问题,重新启动应用程序服务后即可解决。
请指导我 什么地方出了错? 如何调试Redis异常? 如何解释异常消息?
我在stackexchange.Redis中提到了一些已经发布的问题,但是没有提供有关此问题根本原因的详细信息 https://github.com/StackExchange/StackExchange.Redis/issues/559
我的CPU百分比和Redis服务器负载,看起来很好,没有异常
需要找出问题的根本原因和
答案 0 :(得分:0)
该异常非常清楚地说明了发生了什么-有人关闭了您的套接字。这可能来自服务器端,因为它已超时(如果连接处于非活动状态,Azure redis仅使它保持活动状态十分钟],或者因为服务器必须在故障转移期间临时关闭连接,或者由于介入中的问题网络。
但是也有可能是由于您的应用程序中的错误导致套接字被关闭,例如过早处置连接。