nodejs socket 使用setInterval 造成带宽跑满

我的代码 不断用 setinterval 取 redis 的数据 (redis在另一个服务器) 人数有 几十个人同时访问造成redis服务器的网络流出带宽(bit/s) 带宽跑满
是不是哪里应该做个缓存或者什么 几十个人同时访问就造成了 几十个链接都去请求REDIS 人越多带宽指数级增加

   //连接事件  
    io.sockets.on('connection', function (socket) {  
      
        //console.log('有新用户进入...');  
        //叠加当前在线人数  
        onlineCount++;  
        var domain = socket.handshake.headers.origin;

        if(typeof domain == 'undefined'){
            return;
        }

        
            
            socket.volatile.emit('onlinenums', {polotime: res[2]});  
        });



            
        });
               
      
        }
        
        var once = setTimeout(refresh,100);
        
        var tweets = setInterval(refresh, 2000);  
        
      
        console.log('当前用户数量:'+onlineCount);  
        //客户端断开连接  
        socket.on('disconnect', function() {  
            clearInterval(tweets);
            if(onlineCount > 0 ){  
                //当前在线用户减一  
                onlineCount--;  
                console.log('当前用户数量:'+onlineCount);  
            }  
        });  
    });  

    


      
    //启动HTTP服务,绑定端口3000  
    app.listen(3000, function(){  
        console.log('listening on *:3000');  
    });  
阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题