找出谁在使用 Redis

Find out whose using Redis

我们公司有一个 Redis,多个团队都在使用它。我们收到大量请求,但似乎没有人知道是哪个应用程序引起的。我们在整个公司只有一个密码,而且我们的 Redis 受到 VPN 的保护,所以我们知道它不是来自外部。

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

我们使用 Spring 数据 Redis 进行交流。

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

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

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