簡體   English   中英

使用Node.js時Redis客戶端的連接事件稱為多次

[英]Connect event of redis client called mutiple times when using nodejs

我正在使用node + redis,當我運行我的應用程序時,遇到一個奇怪的問題,redis客戶端的connect事件被自動多次調用,就像在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狀態,這很奇怪,因為我只是在本地主機上運行應用程序,而沒有任何人從另一端連接它。

我在代碼中做錯了嗎?

從我這是一個錯誤,我更改了/etc/redis/redis.conf中的redis.conf文件中的超時值,以使redis連接在60秒鍾內不會進入TIME_WAIT狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM