28 lines
813 B
JavaScript
28 lines
813 B
JavaScript
var url = require('url');
|
|
var querystring = require('querystring');
|
|
|
|
module.exports.createClient = module.exports.connect = function(redis_url) {
|
|
var password, database;
|
|
var parsed_url = url.parse(redis_url || process.env.REDIS_URL || 'redis://localhost:6379');
|
|
var parsed_auth = (parsed_url.auth || '').split(':');
|
|
var options = querystring.parse(parsed_url.query);
|
|
|
|
var redis = require('redis').createClient(parsed_url.port, parsed_url.hostname, options);
|
|
|
|
if (password = parsed_auth[1]) {
|
|
redis.auth(password, function(err) {
|
|
if (err) throw err;
|
|
});
|
|
}
|
|
|
|
if (database = parsed_auth[0]) {
|
|
redis.select(database);
|
|
redis.on('connect', function() {
|
|
redis.send_anyways = true
|
|
redis.select(database);
|
|
redis.send_anyways = false;
|
|
});
|
|
}
|
|
|
|
return(redis);
|
|
}
|