Python クライアントの redis の NUMSUB コマンドに相当するものはありますか?
ドキュメントを調べたところ、そのチャネルのサブスクライバーの数を返す publish() メソッド自体以外は見つかりませんでした。ただし、加入者の数を事後的に知ることは、私にとってあまり役に立ちません。
redis-py のこれらの種類のユースケースのクリーンなラッパーはまだないようです。特定のチャネルのサブスクライバーを取得するために通常の redis コマンドを使用することになりました
r = redis.StrictRedis(**{
'host': $WhateverHost,
'port': 6379,
})
pubsub = r.pubsub()
pubsub.subscribe('MyChannel:ID')
....
subscriber_count = r.execute_command('PUBSUB', 'NUMSUB', 'MyChannel:ID')
StrictRedis 接続を使用してから、pubsub オブジェクトを作成できます。
pubsub(self, shard_hint=None) method of redis.client.StrictRedis instance
Return a Publish/Subscribe object. With this object, you can
subscribe to channels and listen for messages that get published to
them.
rc = redis.StrictRedis()
ps = rc.pubsub()
ps.subscribe(channel)
numsub = ps.subscription_count
pubsub オブジェクトには、チャンネルを購読するためのメソッドと、チャンネルの購読者数を示す subscription_count というフィールドがあります。