【问题标题】:Does StackExchange.Redis supports MONITOR?StackExchange.Redis 是否支持 MONITOR?
【发布时间】:2014-07-10 17:06:30
【问题描述】:

我最近从 Booksleeve 迁移到 StackExchange.Redis。

出于监控目的,我需要使用MONITOR 命令。

wiki我读到

从 IServer 实例,服务器命令可用

但是我在 IServer 中找不到任何关于 MONITOR 的方法;在存储库中快速搜索后,即使定义了RedisCommand.MONITOR,似乎也没有映射此命令。

那么,StackExchange.Redis 是否支持 MONITOR 命令?

【问题讨论】:

    标签: redis stackexchange.redis


    【解决方案1】:

    不提供对监视器的支持,原因有很多:

    • 调用monitor是一条不归路; monitor 连接永远不会是任何东西除了 monitor 连接 - 它肯定不能很好地与多路复用器配合使用(尽管我想可以使用单独的连接)
    • monitor 通常不被鼓励——它有影响;并且当您使用时,最好在尽可能靠近服务器的地方运行它(通常在服务器本身的终端中)
    • 通常应短时间使用

    但更重要的是,也许我只是没有看到合适的用户案例或对此有要求。如果在某些情况下monitor 有意义,我很乐意考虑添加某种支持。你想在这里做什么?

    请注意您链接到的 monitor 页面上的警告:

    在这种特殊情况下,运行单个 MONITOR 客户端可以将吞吐量降低 50% 以上。运行更多 MONITOR 客户端将进一步降低吞吐量。

    【讨论】:

    • 这非常中肯。我的用例不是一个很好的理由:我只需要在集成测试期间跟踪所有发送到 redis 数据库的命令,主要用于故障排除。我当然陷入了 StackExchange.Redis-everywhere 问题。一个基本的解决方案可能是在 redis-cli 上使用包装器。顺便说一句,许多监控工具使用命令来计算命令统计信息。这是我现在能想象到的唯一产品用例。
    • @Cyber​​maxs 我不知道它是否会对您有所帮助,但 SE.Redis 的测试平台包含一个特殊构建,可让您将输出流回显到文件中 - 因此您可以获得硬拷贝在连接上发送的所有内容。通常它用于内部调试目的,它需要编译器符号,但是......它工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多