java - 找出谁在使用 Redis
问题描述
我们公司有一个 Redis,多个团队正在使用它。我们收到了大量的请求,但似乎没有人知道是哪个应用程序导致了它。我们整个公司只有一个密码,我们的 Redis 受 VPN 保护,因此我们知道它不是来自外部。
有没有办法知道谁在使用 Redis?也许我们可以通过每个应用程序的连接传递一些标头,以确定谁发出的请求最多,等等。
我们使用 Spring Data Redis 进行通信。
解决方案
这个问题太宽泛了,因为这里可以使用不同的策略:
- 使用Redis MONITOR命令。这基本上是一个内置的调试工具,可以监控 Redis 执行的所有命令
使用某种中间代理。与其将所有命令直接路由到 redis,不如将所有命令路由到代理,该代理将执行一些处理,例如测量调用主机的命令数量,或者可能取决于您想要的命令类型。这仍然只是一个与配置相关的解决方案,因此您不需要在应用程序级别进行任何更改
既然你有弹簧靴,你可以使用千分尺/计量集成。通过这种方式,您可以创建一个计数器/仪表,该计数器/仪表将在每次向 Redis 请求时更新。如果您还将计量数据流式传输到 Prometheus 等工具,您将能够创建一个仪表板,例如在 grafana 中查看整个画面。Micrometer 也可以与其他产品集成,Prometheus/Grafana 只是一个示例,您可以选择任何其他解决方案(也许在您的组织中您已经拥有类似的东西)。
推荐阅读
- javascript - React 不会映射对象数组,TypeError: data.map is not a function
- django - 来自 Django 模型/AdminModel 的 Wagtail 页面
- powershell - 是否可以使用 with 和 endwith 指令?
- xamarin.forms - Xamarin.Forms 按钮在滚动视图 (iOS) 中不起作用
- c# - 实体框架从数据库中获取完整的对象树
- angular - 从列表拖放到放置区域
- laravel - 页面在共享主机托管的 laravel 网站中立即过期
- python - 将numpy数组保存到json
- css - 是否有一个不会改变任何内容的 CSS 属性以及我们可以在哪里存储信息?
- python - Python。从不同的地方删除多个值