I have a Node application that uses Express and node_redis. I'm following the approach outlined in the Learning Node book and creating a single client for the life of the application. Given this approach, when do I call close()
on the redis client? Do I even need to?
Relevant code
var express = require( 'express' ),
redis = require( 'redis' );
var app = express(),
config = require( './config/application' )[ app.get( 'env' ) ];
// create Redis client
var redisClient = redis.createClient();
redisClient.on( 'error', function( err ) {
console.log( 'Error' + err );
} );
// select the database
redisClient.select( config.redis_database );
...
/* more setup, route defintions, etc. */
...
http.createServer( app ).listen( 4000, function() {
console.log( 'Server started and ready for action!' );
});
You have a couple options.
.
process.on("exit", function(){
redisClient.quit();
});
: The question was 3 years ago and you might get answer already, anyway this might be useful for some new people.
You can make nodejs process listens to SIGINT
which is interrupt sent from keyboard via the following code
process.on('SIGINT', function() {
redisClient.quit();
console.log('redis client quit');
});
Then you can either Ctrl+C
from the keyboard, or send such signal via kill -SIGINT <process id>
. When that happens, that code will be executed.
This is when we don't know exactly when to quit redis client, or we want external control to cleanly quit/clear resource we was using.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With