Redis連接的客戶端(connected_clients)數過高或者不減的問題解決方案
阿新 • • 發佈:2017-07-30
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)數過高或者不減的問題解決方案