回答
如果您对您的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. 失去与Redis服务的连接
- 2. 每个服务器2个连接?
- 3. Redis - 连接到远程服务器
- 4. 连接到Redis云服务Bluemix
- 5. 无法连接到redis服务器
- 6. 连接Azure的服务总线
- 7. 连接Azure的服务总线与Android
- 8. Jedis如何使用套接字连接连接到Redis服务器?
- 9. 每个事务的单个连接与所有事务的单个连接?
- 10. Django的连接Redis的
- 11. 服务总线 - 单身连接类?
- 12. 将多个服务器连接到Azure服务总线
- 13. Redis的 - 多个连接和重试连接关闭
- 14. MySQL连接器/ NET连接每个连接多个DataReader?
- 15. 与Redis的连接超时
- 16. Android服务连接?
- 17. Android服务连接
- 18. Redis:由Django的服务器错误关闭的连接
- 19. Redis的缓存 - “服务器关闭了连接”的错误
- 20. 用于服务器到服务器连接的单个持久性TCP连接
- 21. Redis StackExchange客户端 - 经常收到“超时异常”,“Redis连接异常”,“没有可用的服务连接”
- 22. 从每个用户的直接数据库连接移动到使用网络服务与池连接
- 23. Redis的连接从接近事件
- 24. 服务器到服务器的连接
- 25. 线程安全的服务堆栈Redis连接
- 26. 无法连接AWS EC2端口上的Redis服务器6379
- 27. JedisPool无法连接到Telnet Redis的服务器
- 28. laravel v4.2中的Redis服务器连接错误
- 29. WCF数据服务的连接查询
- 30. 关于Azure Redis连接限制(最多X个连接)
如何检查哪个客户端的连接数最多? – Maria
该命令仅为您提供每个连接的IP地址和名称。您可以为每个连接命名,也许可以通过在每个连接上添加或追加客户端名称。您需要汇总此信息以确定哪个IP地址或客户端具有最多的连接。 –
是否可以从IP地址获取环境名称? – Maria