Redis命令列出所有订阅redis频道的订阅者
Posted
技术标签:
【中文标题】Redis命令列出所有订阅redis频道的订阅者【英文标题】:Redis command to list all subscribers subscribed to redis channel 【发布时间】:2016-05-22 14:40:29 【问题描述】:下面的命令只给出频道列表。
127.0.0.1:6379> PUBSUB CHANNELS
1) "mychannel"
2) "mychanne2"
如何列出在频道 1 或频道 2 上订阅的订阅者。?
还有
我没有找到列出特定频道所有订阅者的 redis 命令
【问题讨论】:
【参考方案1】:您可以使用PUBSUB NUMSUB channel1
或PUBSUB NUMSUB channel2
获取指定频道订阅人数的回复。
【讨论】:
【参考方案2】:我可以通过以下方式实现:
redis_client.multi().client(['list']).exec(function(err, results)
var pairs = results[0].split(' ');
pairs.forEach(function(pair)
var kv = pair.split('=');
if (kv[0] == 'name' && kv[1] == constants.REDIS_SUBSCRIBER_NAME)
found = true;
);
if (found) // some logic
else // some logic
);
【讨论】:
如果条件代替name
&& constants.REDIS_SUBSCRIBER_NAME
,我应该输入什么
i required('redis') ,然后创建了 redis_client 客户端,然后在节点中触发了这个脚本,上面写着constants is not defined
这是您可以为订阅者客户端设置的名称。 subscriber.client('setname', constants.REDIS_SUBSCRIBER_NAME);
。 使用你自己的名字。
我已经创建了一个我所做的示例.. 但是从这个示例中我无法得出任何结论。github 示例github sample list_subscribers_of_redis_channels
也在 github 示例中github sample list_subscribers_of_redis_channels 我在很多地方都有 console.log 并且无法确定在 channel1 或 channel2 上订阅的订阅者以上是关于Redis命令列出所有订阅redis频道的订阅者的主要内容,如果未能解决你的问题,请参考以下文章