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); }