1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

Improve server keyspace info in .server_info

This commit is contained in:
Ruben Bridgewater
2015-09-18 01:50:26 +02:00
parent a6357d672a
commit 28f31f134c
2 changed files with 24 additions and 6 deletions

View File

@@ -325,20 +325,23 @@ RedisClient.prototype.on_ready = function () {
};
RedisClient.prototype.on_info_cmd = function (err, res) {
var self = this, obj = {}, lines, retry_time;
var self = this;
var obj = {};
var lines = res.toString().split("\r\n");
var i = 0;
var key = 'db' + i;
var line, retry_time, parts, sub_parts;
if (err) {
return self.emit("error", new Error("Ready check failed: " + err.message));
}
lines = res.toString().split("\r\n");
lines.forEach(function (line) {
var parts = line.split(':');
for (i = 0; i < lines.length; i++) {
parts = lines[i].split(':');
if (parts[1]) {
obj[parts[0]] = parts[1];
}
});
}
obj.versions = [];
/* istanbul ignore else: some redis servers do not send the version */
@@ -348,6 +351,19 @@ RedisClient.prototype.on_info_cmd = function (err, res) {
});
}
while (obj[key]) {
parts = obj[key].split(',');
obj[key] = {};
while (line = parts.pop()) {
sub_parts = line.split('=');
if (sub_parts[1]) {
obj[key][sub_parts[0]] = +sub_parts[1];
}
}
i++;
key = 'db' + i;
}
// expose info key/vals to users
this.server_info = obj;