|
|
@ -57,7 +57,8 @@ function RedisClient(stream, options) { |
|
|
|
this.server_info = {}; |
|
|
|
this.auth_pass = null; |
|
|
|
this.parser_module = null; |
|
|
|
|
|
|
|
this.selected_db = null; // save the selected db here, used when reconnecting
|
|
|
|
|
|
|
|
var self = this; |
|
|
|
|
|
|
|
this.stream.on("connect", function () { |
|
|
@ -163,7 +164,12 @@ RedisClient.prototype.do_auth = function () { |
|
|
|
self.auth_callback(err, res); |
|
|
|
self.auth_callback = null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// restore the selected db if needed
|
|
|
|
if (this.selected_db !== null) { |
|
|
|
this.send_command('select', [this.selected_db]); |
|
|
|
} |
|
|
|
|
|
|
|
// now we are really connected
|
|
|
|
self.emit("connect"); |
|
|
|
if (self.options.no_ready_check) { |
|
|
@ -200,6 +206,12 @@ RedisClient.prototype.on_connect = function () { |
|
|
|
if (this.auth_pass) { |
|
|
|
this.do_auth(); |
|
|
|
} else { |
|
|
|
|
|
|
|
// restore the selected db if needed
|
|
|
|
if (this.selected_db !== null) { |
|
|
|
this.send_command('select', [this.selected_db]); |
|
|
|
} |
|
|
|
|
|
|
|
this.emit("connect"); |
|
|
|
|
|
|
|
if (this.options.no_ready_check) { |
|
|
@ -726,6 +738,24 @@ commands.forEach(function (command) { |
|
|
|
Multi.prototype[command.toUpperCase()] = Multi.prototype[command]; |
|
|
|
}); |
|
|
|
|
|
|
|
// store db in this.select_db to restore it on reconnect
|
|
|
|
RedisClient.prototype.select = function (db, callback) { |
|
|
|
|
|
|
|
var self = this; |
|
|
|
|
|
|
|
this.send_command('select', [db], function (err, res) { |
|
|
|
if (err === null) { |
|
|
|
self.selected_db = db; |
|
|
|
} |
|
|
|
if (typeof(callback) !== 'undefined') { |
|
|
|
callback(err, res); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
RedisClient.prototype.SELECT = RedisClient.prototype.select; |
|
|
|
|
|
|
|
|
|
|
|
// Stash auth for connect and reconnect. Send immediately if already connected.
|
|
|
|
RedisClient.prototype.auth = function () { |
|
|
|
var args = to_array(arguments); |
|
|
|