使用nodejs时连接redis客户端的事件称为多次

时间:2016-06-15 07:07:07

标签: javascript node.js redis

我正在使用node + redis,当我运行我的应用程序时,我遇到了一个奇怪的问题,redis客户端的连接事件被自动调用多次,如redis.js文件所示。

以下是我的代码Server.js:

        var express=require('express');
        var app=express();
        var port=8000;
        var path = require('path');
        var logger=require('morgan');
        var bodyParser = require('body-parser');
        var router = express.Router();

        app.use(logger('dev'));

        app.use(bodyParser.urlencoded({ extended: true }));
        app.use(bodyParser.json());

        app.get('/',function(req,res){
            res.send({message:"Welcome to nodejs APIS"});
        });

        var redisObj=require('./redis.js');
        app.use('/redischeck',redisObj);

        app.listen(port,function(err,res){ if(err){ console.log("Server error");}else{console.log("Server running on port 8000");}});

redis.js

var express = require('express');
var router = express.Router();
var redis = require("redis");
var client = redis.createClient();

 client.on('connect', function() {
console.log('connected'); // Prints multiple time in console
});

router.get('/', function(req, res) {

client.on("error", function (err) { console.log("Error " + err);});

client.set("foo", "bar", function (err, reply) {

  client.quit();

  res.json({status:'Success'});
 });
 });

module.exports=router;

我还使用' netstat -na |交叉检查了这个问题grep 6379'。我观察了很多连接被创建然后进入TIME_WAIT状态,这很奇怪,因为我只是在我的localhost上运行我的app而没有任何人从另一端连接它。

我在代码中做错了什么。

1 个答案:

答案 0 :(得分:0)

我身边的错误是我在/etc/redis/redis.conf中的redis.conf文件中更改了超时值,因此redis连接不会在TIME_WAIT状态下持续60秒。