2013-09-25 2 views
1

Quelqu'un peut-il me dire quel est le problème avec ce code de test? Le programme fonctionne bien au début mais inévitablement, je reçois des erreurs de Redis après quelques heures de non utilisation. Note, j'ai changé l'hôte redis et le mot de passe sur cette publication à de fausses informations.Redis timeout error

Remarque, j'obtiens la même erreur, que j'utilise le pilote node-redis ou iris-redis.

var express = require('express'); 
var app = express(); 

// Redis Data Store 
var redis = require("iris-redis"); 
var client = redis.createClient(6379, "nodejitsudb5555563948.redis.irstack.com"); 
client.auth("fehehyrj971946ef332e975fbebb4"); 

client.on("ready", function() { 
    client.iris_config(function(er, config) { 
     if(er) throw er; 
     console.log("Got my server config: %j", config) 
//  client.quit() 
    }); 
}); 


// Define a test route 
app.get('/test', function(req, res) { 
    client.incr("seq:test", function(err, reply) { 
    console.log("Incremented redis counter: " + reply); 
    var body = "Incremented Redis Counter: " + reply; 
    res.setHeader('Content-Type', 'text/plain'); 
    res.setHeader('Content-Length', body.length); 
    res.end(body); 
    }); 
}); 

app.listen(8001); 
console.log('Listening on port 8001'); 
+0

quelle est la sortie de CONFIG GET timeout sur votre serveur redis? –

Répondre

1

Vous avez probablement timeout pas mis à 0 sur votre redis-server. Si votre application est censée être inactive pendant une longue période, vous devez avoir défini votre timeout sur 0. Vous pouvez vérifier votre fichier de configuration ou utiliser les éléments suivants via redis-cli:

CONFIG GET timeout 

Si cela est déjà sur vos serveurs de production et vous n'êtes pas autorisé à le mettre pendant un certain temps, vous pouvez effectuer les opérations suivantes pour régler la Redis timeout dynamiquement à l'aide redis-cli:

CONFIG SET timeout 0 

Merci de ne pas oublier de mettre la ligne suivante sur votre Redis fichier de configuration:

timeout 0