首页 > 解决方案 > 找出谁在使用 Redis

问题描述

我们公司有一个 Redis,多个团队正在使用它。我们收到了大量的请求,但似乎没有人知道是哪个应用程序导致了它。我们整个公司只有一个密码,我们的 Redis 受 VPN 保护,因此我们知道它不是来自外部。

有没有办法知道谁在使用 Redis?也许我们可以通过每个应用程序的连接传递一些标头,以确定谁发出的请求最多,等等。

我们使用 Spring Data Redis 进行通信。

标签: javaspringredisspring-data-redis

解决方案


这个问题太宽泛了,因为这里可以使用不同的策略:

  1. 使用Redis MONITOR命令。这基本上是一个内置的调试工具,可以监控 Redis 执行的所有命令
  1. 使用某种中间代理。与其将所有命令直接路由到 redis,不如将所有命令路由到代理,该代理将执行一些处理,例如测量调用主机的命令数量,或者可能取决于您想要的命令类型。这仍然只是一个与配置相关的解决方案,因此您不需要在应用程序级别进行任何更改

  2. 既然你有弹簧靴,你可以使用千分尺/计量集成。通过这种方式,您可以创建一个计数器/仪表,该计数器/仪表将在每次向 Redis 请求时更新。如果您还将计量数据流式传输到 Prometheus 等工具,您将能够创建一个仪表板,例如在 grafana 中查看整个画面。Micrometer 也可以与其他产品集成,Prometheus/Grafana 只是一个示例,您可以选择任何其他解决方案(也许在您的组织中您已经拥有类似的东西)。


推荐阅读