diff --git a/src/redis-cli.c b/src/redis-cli.c index d910971b..c7fd91b5 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -102,14 +102,18 @@ char *redisGitDirty(void); * Utility functions *--------------------------------------------------------------------------- */ -static long long mstime(void) { +static long long ustime(void) { struct timeval tv; - long long mst; + long long ust; gettimeofday(&tv, NULL); - mst = ((long long)tv.tv_sec)*1000; - mst += tv.tv_usec/1000; - return mst; + ust = ((long long)tv.tv_sec)*1000000; + ust += tv.tv_usec; + return ust; +} + +static long long mstime(void) { + return ustime()/1000; } static void cliRefreshPrompt(void) { @@ -949,6 +953,10 @@ static int noninteractive(int argc, char **argv) { return retval; } +/*------------------------------------------------------------------------------ + * Eval mode + *--------------------------------------------------------------------------- */ + static int evalMode(int argc, char **argv) { sds script = sdsempty(); FILE *fp; @@ -987,6 +995,10 @@ static int evalMode(int argc, char **argv) { return cliSendCommand(argc+3-got_comma, argv2, config.repeat); } +/*------------------------------------------------------------------------------ + * Latency and latency history modes + *--------------------------------------------------------------------------- */ + #define LATENCY_SAMPLE_RATE 10 /* milliseconds. */ #define LATENCY_HISTORY_DEFAULT_INTERVAL 15000 /* milliseconds. */ static void latencyMode(void) { @@ -1031,6 +1043,10 @@ static void latencyMode(void) { } } +/*------------------------------------------------------------------------------ + * Slave mode + *--------------------------------------------------------------------------- */ + /* Sends SYNC and reads the number of bytes in the payload. Used both by * slaveMode() and getRDB(). */ unsigned long long sendSync(int fd) { @@ -1094,6 +1110,10 @@ static void slaveMode(void) { config.output = original_output; } +/*------------------------------------------------------------------------------ + * RDB transfer mode + *--------------------------------------------------------------------------- */ + /* This function implements --rdb, so it uses the replication protocol in order * to fetch the RDB file from a remote server. */ static void getRDB(void) { @@ -1139,6 +1159,10 @@ static void getRDB(void) { exit(0); } +/*------------------------------------------------------------------------------ + * Bulk import (pipe) mode + *--------------------------------------------------------------------------- */ + static void pipeMode(void) { int fd = context->fd; long long errors = 0, replies = 0, obuf_len = 0, obuf_pos = 0; @@ -1290,6 +1314,10 @@ static void pipeMode(void) { exit(0); } +/*------------------------------------------------------------------------------ + * Find big keys + *--------------------------------------------------------------------------- */ + #define TYPE_STRING 0 #define TYPE_LIST 1 #define TYPE_SET 2 @@ -1400,6 +1428,10 @@ static void findBigKeys(void) { exit(0); } +/*------------------------------------------------------------------------------ + * Stats mode + *--------------------------------------------------------------------------- */ + /* Return the specified INFO field from the INFO command output "info". * A new buffer is allocated for the result, that needs to be free'd. * If the field is not found NULL is returned. */ @@ -1539,6 +1571,10 @@ static void statMode() { } } +/*------------------------------------------------------------------------------ + * Scan mode + *--------------------------------------------------------------------------- */ + static void scanMode() { redisReply *reply; unsigned long long cur = 0;