]> git.saurik.com Git - redis.git/commitdiff
INFO command now reports replication info
authorantirez <antirez@gmail.com>
Mon, 25 May 2009 21:02:42 +0000 (23:02 +0200)
committerantirez <antirez@gmail.com>
Mon, 25 May 2009 21:02:42 +0000 (23:02 +0200)
TODO
redis.c

diff --git a/TODO b/TODO
index 7bcb3828dabe5a966005e318fa26499d8438e687..4213b3dcab764d5235a5091560b9ee02184c24f2 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,5 @@
 BEFORE REDIS 1.0.0-rc1
 
- * Replication status in INFO command. role: (master|slave) slaveof: <host:port>, slavestatus: (disconnected|ok)
  * Add number of keys for every DB in INFO
  * maxmemory support
  * maxclients support
diff --git a/redis.c b/redis.c
index 2fdafc65c79f3bcb1710bf9724fb9c7809e4b841..2d8b5d3e087f4c15f2ae459fbd2863c6156f6348 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -3489,6 +3489,8 @@ static void infoCommand(redisClient *c) {
     
     info = sdscatprintf(sdsempty(),
         "redis_version:%s\r\n"
+        "uptime_in_seconds:%d\r\n"
+        "uptime_in_days:%d\r\n"
         "connected_clients:%d\r\n"
         "connected_slaves:%d\r\n"
         "used_memory:%zu\r\n"
@@ -3497,9 +3499,10 @@ static void infoCommand(redisClient *c) {
         "last_save_time:%d\r\n"
         "total_connections_received:%lld\r\n"
         "total_commands_processed:%lld\r\n"
-        "uptime_in_seconds:%d\r\n"
-        "uptime_in_days:%d\r\n"
+        "role:%s\r\n"
         ,REDIS_VERSION,
+        uptime,
+        uptime/(3600*24),
         listLength(server.clients)-listLength(server.slaves),
         listLength(server.slaves),
         server.usedmemory,
@@ -3508,9 +3511,21 @@ static void infoCommand(redisClient *c) {
         server.lastsave,
         server.stat_numconnections,
         server.stat_numcommands,
-        uptime,
-        uptime/(3600*24)
+        server.masterhost == NULL ? "master" : "slave"
     );
+    if (server.masterhost) {
+        info = sdscatprintf(info,
+            "master_host:%s\r\n"
+            "master_port:%d\r\n"
+            "master_link_status:%s\r\n"
+            "master_last_io_seconds_ago:%d\r\n"
+            ,server.masterhost,
+            server.masterport,
+            (server.replstate == REDIS_REPL_CONNECTED) ?
+                "up" : "down",
+            (int)(time(NULL)-server.master->lastinteraction)
+        );
+    }
     addReplySds(c,sdscatprintf(sdsempty(),"$%d\r\n",sdslen(info)));
     addReplySds(c,info);
     addReply(c,shared.crlf);