You've already forked node-redis
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:
28
index.js
28
index.js
@@ -325,20 +325,23 @@ RedisClient.prototype.on_ready = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
RedisClient.prototype.on_info_cmd = function (err, res) {
|
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) {
|
if (err) {
|
||||||
return self.emit("error", new Error("Ready check failed: " + err.message));
|
return self.emit("error", new Error("Ready check failed: " + err.message));
|
||||||
}
|
}
|
||||||
|
|
||||||
lines = res.toString().split("\r\n");
|
for (i = 0; i < lines.length; i++) {
|
||||||
|
parts = lines[i].split(':');
|
||||||
lines.forEach(function (line) {
|
|
||||||
var parts = line.split(':');
|
|
||||||
if (parts[1]) {
|
if (parts[1]) {
|
||||||
obj[parts[0]] = parts[1];
|
obj[parts[0]] = parts[1];
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
obj.versions = [];
|
obj.versions = [];
|
||||||
/* istanbul ignore else: some redis servers do not send the version */
|
/* 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
|
// expose info key/vals to users
|
||||||
this.server_info = obj;
|
this.server_info = obj;
|
||||||
|
|
||||||
|
@@ -227,6 +227,8 @@ describe("The node_redis client", function () {
|
|||||||
var end = helper.callFuncAfter(function () {
|
var end = helper.callFuncAfter(function () {
|
||||||
client.removeListener("connect", on_connect);
|
client.removeListener("connect", on_connect);
|
||||||
client.removeListener("reconnecting", on_recon);
|
client.removeListener("reconnecting", on_recon);
|
||||||
|
assert.strictEqual(client.server_info.db0.keys, 2);
|
||||||
|
assert.strictEqual(Object.keys(client.server_info.db0).length, 3);
|
||||||
done();
|
done();
|
||||||
}, 4);
|
}, 4);
|
||||||
client.get("recon 1", helper.isString("one", end));
|
client.get("recon 1", helper.isString("one", end));
|
||||||
|
Reference in New Issue
Block a user