在C#中执行Redis控制台命令

4
我需要从 Redis 控制台中获取“客户端列表”输出,以在我的 C# 应用程序中使用。有没有一种方法可以使用 ConnectionMultiplexer 执行该命令?或者是否有内置方法可以查找该信息?
1个回答

4

CLIENT LIST是一个“服务器”命令,而不是“数据库”命令(在此有所区别),因此您需要使用IServer/GetServer()而不是IDatabase/GetDatabase()。链接还显示了如何执行此操作。一旦您拥有了这个:有ClientListClientListAsync方法,可以将所有解析为ClientInfo实例。

如果它不存在,则备选选项将是IDatabase.Execute[Async](发出任意原始命令)或IDatabase.ScriptEvaluate[Async](发出Lua脚本)。


工作得非常完美,感谢您的即时回答。 - PedroNeves
根据文档(https://learn.microsoft.com/en-us/azure/azure-cache-for-redis/cache-dotnet-how-to-use-azure-redis-cache),`CLIENT LIST`是IDatabase命令。 - nelion
1
@badaboomskey 他们在这里滥用了 execute; 我对他们在文档中这样做感到非常失望,特别是因为 Azure Redis 经常是集群的。 这意味着他们会随意选择一个随机服务器(如果它能正常工作的话)。 请相信我:client list 是一个特定于服务器的命令。 不想显得自夸,但是:我的观点比那些文档更重要。 如果您感到宽容,那么这些文档要么是“错误的”,要么是“危险地误导”。 - Marc Gravell
1
@badaboomskey 我已经开了一个工单:https://github.com/MicrosoftDocs/azure-docs/issues/53235 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接