[英]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.