You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用redis-cli查询Redis服务器中Socket.io创建的活跃房间数量

Socket.io Redis Adapter 统计活跃房间数方案

你用PUBSUB CHANNELS只能查到多节点通信的控制通道,Socket.io的房间元数据本身没有存储在pubsub通道中,所以无法通过该命令统计房间数量,具体统计方法根据你使用的Adapter版本而定:

  • 若使用socket.io-redis v6及更早版本
    每个活跃房间对应一个格式为socket.io#<命名空间>#<房间名>的Redis集合key,直接统计该格式的key总数即可。

    注意:生产环境禁止使用KEYS命令(会阻塞Redis实例),请使用SCAN命令迭代统计:

    SCAN 0 MATCH "socket.io#*#*" COUNT 1000
    

    迭代完所有匹配项后,剔除对应单个socket连接的私有集合,剩余的key数量就是活跃房间总数。如果你配置了自定义key前缀,把匹配规则里的socket.io替换为你设置的前缀即可。

  • 若使用@socket.io/redis-adapter v7及以上官方新版本
    所有活跃房间的元数据统一存储在名为socket.io#rooms的Redis哈希表中,哈希字段为房间名,你可以直接用HLEN命令拿到总数,性能无损耗:

    HLEN "socket.io#rooms"
    

    同样如果配置了自定义前缀,替换对应前缀即可。

内容的提问来源于stack exchange,提问作者Ajmal Majeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:24:01