1

購読者数など、パブリッシャー アプリに関する統計情報を提供する必要があります。

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 しかし、鋼はそれを使用する方法について助けが必要です:)

4

1 に答える 1

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」はカウントからセルトを削除するため、/2 は分割後に 2 倍の金額を取得するためです

于 2014-08-17T19:28:48.997 に答える