对于python客户端,是否有一些等效于redis中的NUMSUB命令?
我查看了文档,除了publish()方法本身之外找不到任何东西,它返回该频道上的订阅者数量。知道事后有多少订阅者对我来说并不是很有用。
答案 0 :(得分:2)
在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')
答案 1 :(得分:1)
您可以使用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的字段,用于指定频道的订阅者数量。