redis-cli: -i (interval) implemented, to wait the specified number of seconds (decimal digits are allowed) between commands.

This commit is contained in:
antirez 2011-05-28 15:41:08 +02:00
parent 442c748d84
commit 18f63d8d51

View File

@ -55,6 +55,7 @@ static struct config {
int hostport; int hostport;
char *hostsocket; char *hostsocket;
long repeat; long repeat;
long interval;
int dbnum; int dbnum;
int interactive; int interactive;
int shutdown; int shutdown;
@ -517,6 +518,8 @@ static int cliSendCommand(int argc, char **argv, int repeat) {
cliRefreshPrompt(); cliRefreshPrompt();
} }
} }
if (config.interval) usleep(config.interval);
fflush(stdout); /* Make it grep friendly */
} }
free(argvlen); free(argvlen);
@ -552,6 +555,10 @@ static int parseOptions(int argc, char **argv) {
} else if (!strcmp(argv[i],"-r") && !lastarg) { } else if (!strcmp(argv[i],"-r") && !lastarg) {
config.repeat = strtoll(argv[i+1],NULL,10); config.repeat = strtoll(argv[i+1],NULL,10);
i++; i++;
} else if (!strcmp(argv[i],"-i") && !lastarg) {
double seconds = atof(argv[i+1]);
config.interval = seconds*1000000;
i++;
} else if (!strcmp(argv[i],"-n") && !lastarg) { } else if (!strcmp(argv[i],"-n") && !lastarg) {
config.dbnum = atoi(argv[i+1]); config.dbnum = atoi(argv[i+1]);
i++; i++;
@ -604,6 +611,8 @@ static void usage() {
" -s <socket> Server socket (overrides hostname and port)\n" " -s <socket> Server socket (overrides hostname and port)\n"
" -a <password> Password to use when connecting to the server\n" " -a <password> Password to use when connecting to the server\n"
" -r <repeat> Execute specified command N times\n" " -r <repeat> Execute specified command N times\n"
" -i <interval> When -r is used, waits <interval> seconds per command.\n"
" It is possible to specify sub-second times like -i 0.1.\n"
" -n <db> Database number\n" " -n <db> Database number\n"
" -x Read last argument from STDIN\n" " -x Read last argument from STDIN\n"
" -d <delimiter> Multi-bulk delimiter in for raw formatting (default: \\n)\n" " -d <delimiter> Multi-bulk delimiter in for raw formatting (default: \\n)\n"
@ -615,6 +624,7 @@ static void usage() {
" cat /etc/passwd | redis-cli -x set mypasswd\n" " cat /etc/passwd | redis-cli -x set mypasswd\n"
" redis-cli get mypasswd\n" " redis-cli get mypasswd\n"
" redis-cli -r 100 lpush mylist x\n" " redis-cli -r 100 lpush mylist x\n"
" redis-cli -r 100 -i 1 info | grep used_memory_human:\n"
"\n" "\n"
"When no command is given, redis-cli starts in interactive mode.\n" "When no command is given, redis-cli starts in interactive mode.\n"
"Type \"help\" in interactive mode for information on available commands.\n" "Type \"help\" in interactive mode for information on available commands.\n"
@ -736,6 +746,7 @@ int main(int argc, char **argv) {
config.hostport = 6379; config.hostport = 6379;
config.hostsocket = NULL; config.hostsocket = NULL;
config.repeat = 1; config.repeat = 1;
config.interval = 0;
config.dbnum = 0; config.dbnum = 0;
config.interactive = 0; config.interactive = 0;
config.shutdown = 0; config.shutdown = 0;