From 9494f1f15b128ef8407d118c240d3793aff0ed82 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 7 Mar 2012 10:38:01 +0100 Subject: [PATCH] TIME command. --- src/redis.c | 14 +++++++++++++- src/redis.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/redis.c b/src/redis.c index 64df9073..452c3bb7 100644 --- a/src/redis.c +++ b/src/redis.c @@ -242,7 +242,8 @@ struct redisCommand redisCommandTable[] = { {"eval",evalCommand,-3,"wms",0,zunionInterGetKeys,0,0,0,0,0}, {"evalsha",evalShaCommand,-3,"wms",0,zunionInterGetKeys,0,0,0,0,0}, {"slowlog",slowlogCommand,-2,"r",0,NULL,0,0,0,0,0}, - {"script",scriptCommand,-2,"ras",0,NULL,0,0,0,0,0} + {"script",scriptCommand,-2,"ras",0,NULL,0,0,0,0,0}, + {"time",timeCommand,1,"rR",0,NULL,0,0,0,0,0} }; /*============================ Utility functions ============================ */ @@ -1505,6 +1506,17 @@ void echoCommand(redisClient *c) { addReplyBulk(c,c->argv[1]); } +void timeCommand(redisClient *c) { + struct timeval tv; + + /* gettimeofday() can only fail if &tv is a bad addresss so we + * don't check for errors. */ + gettimeofday(&tv,NULL); + addReplyMultiBulkLen(c,2); + addReplyBulkLongLong(c,tv.tv_sec); + addReplyBulkLongLong(c,tv.tv_usec); +} + /* Convert an amount of bytes into a human readable string in the form * of 100B, 2G, 100M, 4K, and so forth. */ void bytesToHuman(char *s, unsigned long long n) { diff --git a/src/redis.h b/src/redis.h index cccdcc81..870439d7 100644 --- a/src/redis.h +++ b/src/redis.h @@ -1218,6 +1218,7 @@ void clientCommand(redisClient *c); void evalCommand(redisClient *c); void evalShaCommand(redisClient *c); void scriptCommand(redisClient *c); +void timeCommand(redisClient *c); #if defined(__GNUC__) void *calloc(size_t count, size_t size) __attribute__ ((deprecated)); -- 2.45.2