【问题标题】:redis c# client, how do i get Subscribers count?redis c# 客户端,我如何获取订阅者数量?
【发布时间】:2014-08-17 18:41:16
【问题描述】:

我需要提供有关我的发布者应用的统计信息 比如有多少订阅者?

我无法从 redis 服务器获取该信息

我已经尝试在“ServiceStack.Redis.RedisSubscription”中找到

我发现了这个:

        var channel = ConfigurationManager.AppSettings["redis_channel"];
        var _redisClient = new RedisClient("localhost", 6379);
        var subscription = _redisClient.CreateSubscription();
        //subscription.SubscribeToChannels(channel);
        var subscription_count = (int)subscription.SubscriptionCount

但它每次都返回 0。

有什么想法吗?

编辑: 我找到了这个http://redis.io/commands/client-list 但是钢铁需要一些关于如何使用它的帮助 谢谢:)

【问题讨论】:

    标签: c# count redis subscriber servicestack.redis


    【解决方案1】:

    我明白了!

    如果有人需要,我就是这样做的:

    var redis_ip = ConfigurationManager.AppSettings["redis_server_ip"];
            var redis_port = ConfigurationManager.AppSettings["redis_server_port"];
            int redis_port_int = 0;
            if (!int.TryParse(redis_port, out redis_port_int))
            {
                redis_port_int = 6739;
            }
            RedisNativeClient rnClient = new RedisNativeClient(redis_ip, redis_port_int);
            var clientlist_byte = rnClient.ClientList();
            var clientlist_string = Encoding.UTF8.GetString(clientlist_byte);
            var clientamount_double = clientlist_string.Split("\n".ToCharArray()).Length;
            var clientlist_int = (clientamount_double/2) - 1;
            return clientlist_int;
    

    '-1' 是从计数中删除我的 selt, /2 这是因为拆分后我得到了双倍的金额

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2014-10-19
      • 1970-01-01
      相关资源
      最近更新 更多