java - 找出谁使用Redis

标签 java spring redis spring-data-redis

我们的公司有一个Redis,并且有多个团队正在使用它。我们的请求激增,似乎没人知道是哪个应用程序引起了请求。我们只有一个遍及整个公司的密码,而我们的Redis受VPN保护,因此我们知道它不是来自外部。
有没有办法知道谁在使用Redis?也许我们可以在每个应用程序的连接中传递一些 header ,以确定谁提出的请求最多,等等。
我们使用Spring Data Redis进行通信。

最佳答案

这个问题太笼统了,因为可以在此处使用不同的策略:

  • 使用Redis MONITOR命令。这基本上是一个内置的调试工具,用于监视Redis
  • 执行的所有命令
  • 使用某种中间代理。与其将所有命令直接路由到Redis,不如将所有命令路由到代理服务器,代理服务器将进行一些处理,例如由调用主机测量命令的数量,或者根据您的需要测量命令的类型。
    这仍然只是与配置相关的解决方案,因此您无需在应用程序级别进行任何更改
  • 由于您具有 Spring 靴,因此可以使用微米/计量集成。这样,您可以创建一个计数器/量具,该计数器/量具将根据对Redis的每次请求进行更新。如果还将计量数据流传输到Prometheus等工具,则可以创建仪表板,例如在grafana中查看整个图片。千分尺也可以与其他产品集成,Prometheus / Grafana只是一个例子,您可以选择任何其他解决方案(也许在您的组织中您已经拥有类似的东西)。
  • 关于java - 找出谁使用Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62655318/

    相关文章:

    python - 如何将字符集应用于 Redis ConnectionPool?

    java - 如何在 Web 服务中序列化公共(public)静态最终字符串?

    java - Spring in Action 3 AOP引发问题的例子

    java - 使用 spring Batch 和 apache poi 从多个源写入数据

    docker - 使用 Docker 时获取警告

    unix - Redis-cli 使用EVAL执行代码

    java - LibGDX 网格高度图法线和灯光

    java - 库中的 Hibernate 配置

    java - 将 ID 从查询转换为字符串

    java - 使用 Spring 进行 session 复制会导致 NotSerializedException