回答
如果您對您的Redis實例運行「客戶端列表」命令,您應該能夠看到連接到您的redis實例的客戶端的整個列表及其IP地址。然後您可以查看哪些客戶端(服務)與您的Redis實例的連接數最多。
您可以鍵入命令「客戶名單」,你會看到這些名字:
id=39 addr=127.0.0.1:34706 fd=7 name= age=141156 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
id=78 addr=127.0.0.1:58014 fd=5 name= age=63779 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=llen
id=80 addr=127.0.0.1:36826 fd=6 name= age=46776 idle=1685 flags=N db=1 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=del
最有用的密鑰你的回答是「年齡」 & &「空閒」,「年齡」是指以秒爲單位的連接總持續時間和「空閒」表示此連接的空閒時間。所以(年齡 - 閒置)/年齡相關的客戶端使用服務器的CPU比其他客戶端的價值更小,但不是非常精確
其他命令也可以給你一些建議,如「INFO」和「MONITOR」。 INFO爲您提供有關redis服務器的統計信息,例如內存使用情況,處理的命令,CPU使用情況,連接的客戶端等,您可以參考this以獲取更多信息。
「MONITOR」爲您提供實時顯示,說明現在發生了什麼,正在執行什麼命令,誰發送了此命令。也許你可以使用MONITOR輸出來計算每個客戶端資源。
例如 對於每個命令,您首先解析它並使用成本來添加客戶端成本總和。在耗時的計算中,SET是O(1),Lrange是O(N)。但是,這很難做到這一點。但您可以使用以下命令記錄此事件:
redis-cli monitor > redis-command.log
您可以使用此日誌做一些分析。但請注意,MONITOR命令會降低您的redis服務器吞吐量,請檢查this
謝謝。還有一件事,是否可以從IP地址獲取環境名稱?我正在使用boto3,但無法找到如何獲取環境名稱 – Maria
- 1. 每個服務器2個連接?
- 2. Redis服務器重啓後服務堆棧Redis重新連接
- 3. 連接到Redis雲服務Bluemix
- 4. 無法連接到redis服務器
- 5. 連接到遠程redis服務器
- 6. Redis服務堆棧連接客戶端
- 7. Redis - 連接到遠程服務器
- 8. 連接Azure的服務總線
- 9. 連接Azure的服務總線與Android
- 10. Node.js服務器:連接到redis數據庫一次?或在每個請求?
- 11. Jedis如何使用套接字連接連接到Redis服務器?
- 12. 每個事務的單個連接與所有事務的單個連接?
- 13. 服務總線 - 單身連接類?
- 14. 在連接之前檢測Redis連接
- 15. Django的連接Redis的
- 16. JxBrowser - 限制每個服務器/代理的最大連接數
- 17. SQl連接和服務器連接
- 18. 將多個服務器連接到Azure服務總線
- 19. 使用Windows服務連接到Redis SignalR服務器
- 20. tornado-redis連接unixsocket
- 21. Redis連接關閉
- 22. Redis - 連接拒絕
- 23. Redis的 - 多個連接和重試連接關閉
- 24. MySQL連接器/ NET連接每個連接多個DataReader?
- 25. 連接,Redis的店不socket.io
- 26. 與Redis的連接超時
- 27. MongoError:無法連接到服務器上的第一個連接
- 28. Android服務連接
- 29. Android服務連接?
- 30. Laravel:連接服務
如何檢查哪個客戶端的連接數最多? – Maria
該命令僅爲您提供每個連接的IP地址和名稱。您可以爲每個連接命名,也許可以通過在每個連接上添加或追加客戶端名稱。您需要彙總此信息以確定哪個IP地址或客戶端具有最多的連接。 –
是否可以從IP地址獲取環境名稱? – Maria