如何在C#的StackExchange.Redis客户端获取Redis集群信息?
使用StackExchange.Redis获取Redis集群
cluster info信息 我之前也碰到过这个需求——StackExchange.Redis并没有直接提供封装好的方法来获取集群信息,但我们可以通过发送原生Redis命令的方式实现,得到的结果和你在终端执行cluster info完全一致。
核心实现思路
StackExchange.Redis的IDatabase对象提供了Execute方法,支持发送任意原生Redis命令。对于集群来说,只需要连接到集群中的任意节点,发送CLUSTER INFO命令即可获取全局的集群状态信息。
完整代码示例
using StackExchange.Redis; using System; class RedisClusterInfoDemo { static void Main(string[] args) { // 替换为你的Redis集群连接字符串,注意要开启allowAdmin权限 var clusterConnectionString = "127.0.0.1:7005,allowAdmin=true"; // 建立集群连接 using var multiplexer = ConnectionMultiplexer.Connect(clusterConnectionString); var db = multiplexer.GetDatabase(); // 发送CLUSTER INFO原生命令 RedisResult clusterInfoResult = db.Execute("CLUSTER", "INFO"); // 输出结果,格式和终端执行cluster info完全一致 Console.WriteLine(clusterInfoResult.ToString()); } }
注意事项
- 必须在连接字符串中添加
allowAdmin=true,因为CLUSTER INFO属于Redis的管理类命令,需要开启该权限才能执行 - 不需要特意连接到主节点,集群中的任意节点执行
CLUSTER INFO都会返回全局的集群状态数据 - 返回的结果是纯字符串格式,和你提供的终端输出示例完全一致,如果需要解析具体字段,可以自行按换行和冒号分割键值对
内容的提问来源于stack exchange,提问作者24SegFault
相关产品推荐
相关产品推荐

