杰克工作室 发表于 2023-2-23 15:40

Redis连接的客户端(connected_clients)数过高或者不减的问题解决方案

<p>最近的项目上使用ServiceStack.Redis上了Redis缓存,其中遇到了很多问题。。 比如说 某一天发现redis做的缓存竟然失效了,然后查了下日志&nbsp; 报错max number of clients reached, sPort: 0, LastCommand:&nbsp;&nbsp;&nbsp;。。首先考虑的是是不是项目中redis使用完后没有dispose..结果查了半天没发现有哪里忘记dispose。。 之后觉得是redis服务端可能出了问题 重启了下,过了段时间查看redis状态&nbsp; info指令。。</p>

<p><img alt="" src="http://sebcxy.x.com/uploads/images/20180312/2018-03-12_10-42-03_743.jpg" />&nbsp;</p>

<p>可以看到connected_clients很高 。。多次监控后发现虽然有下降 但是还是在4000以上。</p>

<p>之后在用client list 指令 查看客户端连接情况</p>

<p><img alt="" src="http://sebcxy.x.com/uploads/images/20180312/2018-03-12_10-42-04_551.jpg" /></p>

<p>其中idle(以秒计算的空闲时长)竟然这么长时间。。很多空闲连接都没有被及时释放掉从而导致connected_clients非常高</p>

<p>查看redis的配置timeout (当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能)</p>

<p><img alt="" src="http://sebcxy.x.com/uploads/images/20180312/2018-03-12_10-42-04_392.jpg" /></p>

<p>然后设置timeout</p>

<p><img alt="" src="http://sebcxy.x.com/uploads/images/20180312/2018-03-12_10-42-04_333.jpg" /></p>

<p>再次查看connected_clients</p>

<p><img alt="" src="http://sebcxy.x.com/uploads/images/20180312/2018-03-12_10-42-05_781.jpg" /></p>

<p>瞬间就降下来了。。 至此问题解决!</p>

<p>原文链接:http://blog.csdn.net/cxhgg/article/details/67640263</p>
页: [1]
查看完整版本: Redis连接的客户端(connected_clients)数过高或者不减的问题解决方案