http lib last 知識庫 nbsp reac nts 關閉連接 comm

最近的項目上使用ServiceStack.Redis上了redis緩存,其中遇到了很多問題。。 比如說 某一天發現redis做的緩存竟然失效了,然後查了下日誌 報錯max number of clients reached, sPort: 0, LastCommand: 。。首先考慮的是是不是項目中redis使用完後沒有dispose..結果查了半天沒發現有哪裏忘記dispose。。 之後覺得是redis服務端可能出了問題 重啟了下,過了段時間查看redis狀態 info指令。。

技術分享

可以看到connected_clients很高 。。多次監控後發現雖然有下降 但是還是在4000以上。

之後在用client list 指令 查看客戶端連接情況

技術分享

其中idle(以秒計算的空閑時長)竟然這麽長時間。。很多空閑連接都沒有被及時釋放掉從而導致connected_clients非常高

查看redis的配置timeout (當客戶端閑置多長時間後關閉連接,如果指定為0,表示關閉該功能)

技術分享

然後設置timeout

技術分享

再次查看connected_clients

技術分享

瞬間就降下來了。。 至此問題解決!

技術分享

Redis連接的客戶端(connected_clients)數過高或者不減的問題解決方案