是否有用于redis-py的NUMSUB命令?

时间:2014-07-31 18:09:20

标签: python redis redis-py

对于python客户端,是否有一些等效于redis中的NUMSUB命令?

我查看了文档,除了publish()方法本身之外找不到任何东西,它返回该频道上的订阅者数量。知道事后有多少订阅者对我来说并不是很有用。

2 个答案:

答案 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的字段,用于指定频道的订阅者数量。