294 Commits

Author SHA1 Message Date
antirez
cb2d627e8d redis-cli: raise error on bad command line switch.
Previously redis-cli never tried to raise an error when an unrecognized
switch was encountered, as everything after the initial options is to be
transmitted to the server.

However this is too liberal, as there are no commands starting with "-".
So the new behavior is to produce an error if there is an unrecognized
switch starting with "-". This should not break past redis-cli usages
but should prevent broken options to be silently discarded.

As far the first token not starting with "-" is encountered, all the
rest is considered to be part of the command, so you cna still use
strings starting with "-" as values, like in:

    redis-cli --port 6380 set foo --my-value
2013-04-11 13:17:25 +02:00
antirez
80b47765af redis-cli: --latency-history mode implemented. 2013-04-11 13:11:41 +02:00
antirez
5ee22f70e7 redis-cli --stat, stolen from redis-tools.
Redis-tools is a connection of tools no longer mantained that was
intented as a way to economically make sense of Redis in the pre-vmware
sponsorship era. However there was a nice redis-stat utility, this
commit imports one of the functionalities of this tool here in redis-cli
as it seems to be pretty useful.

Usage: redis-cli --stat

The output is similar to vmstat in the format, but with Redis specific
stuff of course.

From the point of view of the monitored instance, only INFO is used in
order to grab data.
2013-03-22 17:54:32 +01:00
antirez
2e0f6a0a0c redis-cli --bigkeys: don't crash with empty DBs. 2013-03-12 09:58:00 +01:00
antirez
987c4c9567 redis-cli: use sdsfreesplitres() instead of hand-coding it. 2013-03-06 12:38:32 +01:00
antirez
824879435c redis-cli: use keepalive socket option.
This should improve things in two ways:

1) Prevent timeouts caused by the execution of long commands.
2) Improve detection of real connection errors.

This is mostly effective only on Linux because of the bogus default
keepalive settings. In Linux we have OS-specific calls to set the
keepalive interval to reasonable values.
2013-03-04 11:14:32 +01:00
antirez
751b523fb8 redis-cli: update prompt on cluster redirection. 2013-02-14 18:49:08 +01:00
antirez
ba7a3e1b79 redis-cli --bigkeys output is now simpler to understand. 2013-01-21 19:15:58 +01:00
guiquanz
df7a5b7157 Fixed many typos. 2013-01-19 10:59:44 +01:00
Salvatore Sanfilippo
188ad22ff7 Merge pull request #887 from charsyam/redis-cli-prompt
redis-cli prompt bug fix
2013-01-19 01:32:28 -08:00
Salvatore Sanfilippo
cff7e102bb Merge pull request #895 from badboy/catch_con_error
redis-cli: always exit if connection fails.
2013-01-19 01:27:56 -08:00
Jan-Erik Rediger
2d31425356 Always exit if connection fails.
This avoids unnecessary core dumps. Fixes antirez/redis#894
2013-01-18 10:13:10 +01:00
Nathan Parry
49ea5589c0 redis-cli --rdb fails if server sends a ping
Redis pings slaves in "pre-synchronization stage" with newlines. (See
https://github.com/antirez/redis/blob/2.6.9/src/replication.c#L814)
However, redis-cli does not expect this - it sees the newline as the end
of the bulk length line, and ends up returning 0 as bulk the length.
This manifests as the following when running redis-cli:

    $ ./src/redis-cli --rdb some_file
    SYNC sent to master, writing 0 bytes to 'some_file'
    Transfer finished with success.

With this commit, we just ignore leading newlines while reading the bulk
length line.

To reproduce the problem, load enough data into Redis so that the
preparation of the RDB snapshot takes long enough for a ping to occur
while redis-cli is waiting for the data.
2013-01-18 00:10:58 -05:00
charsyam
5596ba6ede redis-cli prompt bug fix 2013-01-16 17:20:54 -08:00
antirez
64c7380fa4 redis-cli: save an RDB dump from remote server to local file. 2013-01-16 19:44:37 +01:00
antirez
1d235fa5ad Fix overflow in mstime() in redis-cli and benchmark.
The problem does not exist in the Redis server implementation of mstime()
but is only limited to redis-cli and redis-benchmark.

Thix fixes issue #839.
2012-12-20 15:20:55 +01:00
antirez
a32d1ddff6 BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
Steeve Lennmark
16609e29b4 Check that we have connection before enabling pipe mode 2012-07-15 14:35:02 +02:00
Ted Nyman
a5ca4519ad Standardize punctuation in redis-cli help.
Right there is a mix of help entries ending with periods or
without periods. This standardizes the end of command as without
periods, which seems to be the general custom in most unix tools,
at least.
2012-06-12 22:35:00 -07:00
antirez
b19eaa4b29 Added time.h include in redis-cli.
redis-cli.c uses the time() function to seed the PRNG, but time.h was
not included. This was not noticed since sys/time.h is included and was
enough in most systems (but not correct). With Ubuntu 12.04 GCC
generates a warning that made us aware of the issue.
2012-05-14 17:35:51 +02:00
antirez
a7be5ac4fe redis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SIGCONT are handled correctly. 2012-05-11 16:08:57 +02:00
antirez
0e122a8022 redis-cli pipe mode: handle EAGAIN while writing to socket. 2012-05-11 10:45:12 +02:00
antirez
7ba8e7081c redis-cli --pipe for mass import. 2012-05-07 16:37:18 +02:00
antirez
6c6d6d8194 A few compiler warnings suppressed. 2012-04-24 11:11:55 +02:00
antirez
743282429d redis-cli --bigkeys output modified to be simpler to read.. 2012-04-18 20:53:37 +02:00
antirez
fbe8b2f6d3 redis-cli --bigkeys 2012-04-18 20:33:02 +02:00
antirez
4f615b696c Suppress warnings compiling redis-cli with certain gcc versions. 2012-03-19 19:28:49 +01:00
antirez
caa58bc830 redis-cli: CSV output added, used for the --slave mode. 2012-02-29 17:43:06 +01:00
antirez
6f484a0704 Initial implementation of redis-cli --slave support. 2012-02-29 17:10:21 +01:00
antirez
ff804069d4 Fix for issue #306, thanks to tchajed (on github) for the pull request. The original patch was reworked a bit. 2012-02-22 16:07:06 +01:00
antirez
520490dd25 Redis-cli should accept help command even if there is no connection to the server. 2012-02-22 15:16:11 +01:00
antirez
921feadb64 redis-cli --eval implemented 2011-12-13 16:22:28 +01:00
antirez
8efbbaf821 Fixed a memory leak in redis-cli.c 2011-10-28 17:43:04 +02:00
antirez
5d78296230 Totally hackish and dirty, but working, support for Redis Cluster in redis-cli 2011-10-05 19:55:33 +02:00
Salvatore Sanfilippo
bcbb91e6e3 Merge pull request #97 from jvain/redis-cli
redis-cli segfaults with single numeric argument greater than zero
2011-09-21 13:32:24 -07:00
Juri M. Vainonen
2d52506bc2 fixed a small bug that caused redis-cli to segfault when given single numeric parameter greater that zero. 2011-09-21 23:22:14 +03:00
antirez
68c4acd91b Fixed a bug in the average latency metering of redis-cli --latency 2011-09-15 19:33:24 +02:00
antirez
84c42e7da3 Implemented --latency in redis-cli 2011-09-15 19:28:00 +02:00
antirez
e257c6bd24 redis-cli: -i (interval) implemented, to wait the specified number of seconds (decimal digits are allowed) between commands. 2011-05-28 15:41:08 +02:00
antirez
23695bffd6 redis-cli: Use the repetiton prefix after a reconnection. 2011-05-28 15:25:48 +02:00
antirez
afe31333d6 redis-cli in REPL mode is now able to send the same command multiple times, prefixing the command with a number as in "10 ping" 2011-05-28 15:13:55 +02:00
antirez
152d26cfe6 redis-cli no longer aborts in repl-mode on error, and retries to reconncet with the server at every command issued if the state is not connected. Also the prompt shows the server we are connected to. 2011-05-28 15:04:12 +02:00
antirez
8a3ff7cff3 CLIENT LIST implemented 2011-04-21 15:38:02 +02:00
antirez
b2b9d54320 Cluster branch merged to unstable. 2011-03-29 17:51:15 +02:00
Pieter Noordhuis
a98b288aac Show database number in cli prompt when non-zero 2011-03-06 21:14:40 +01:00
Pieter Noordhuis
8c86583a31 Store SELECTed database for reconnect (issue #468) 2011-03-06 20:46:49 +01:00
Pieter Noordhuis
b31d5e7305 Minor memory leak in redis-cli (issue #464) 2011-03-06 20:13:01 +01:00
Pieter Noordhuis
cd998263fd Only save history when stdin is a tty (issue #465) 2011-03-06 20:02:33 +01:00
Pieter Noordhuis
11993c1a39 Fix compiler warnings on Solaris 2010-12-23 11:26:11 +00:00
Pieter Noordhuis
3ff39af1ef Specify multi-bulk delimiter via options 2010-12-15 16:02:07 +01:00