[work@ ~]$ redis-cli -p 32495 -c set a 1
OK
[work@ ~]$ redis-cli -p 32495 -c incr 1
(integer) 1
[work@ ~]$ redis-cli -p 32495 -c incr 1
(integer) 2
[work@ ~]$ redis-cli -p 32495 -c incr 1 > out.txt
[work@ ~]$ cat out.txt
3
[work@ ~]$ rm -rf out.txt
[work@ ~]$ cd test/
[work@ ]$ redis-cli -p 32495 -c -raw incr 1
Unrecognized option or bad number of args for: '-raw'
[work@]$ redis-cli -p 32495 -c --raw incr 1
4
[work@ ]$ redis-cli -p 32495 -c set chen 凡
OK
[work@ test]$ redis-cli -p 32495 -c get chen
"\xe5\x87\xa1"
[work@test]$ redis-cli -p 32495 -c --raw get chen
凡
[work@test]$ redis-cli -p 32495 -c --csv get chen
"\xe5\x87\xa1\xe9\xaa\x90"
[work@test]$ redis-cli -p 32495 -c --raw get chen
凡
https://www.cnblogs.com/litaozijin/p/7118226.html
使用 redis-cli --help可以看到如下用法介绍。
" --csv Output in CSV format\n"
表示以CSV格式输出
但是没有太多的用法介绍。之后又看源码,发现 redis-benchmark中也有 --csv 的用法,–help 看到的用法介绍和redis-cli 看到的是一样的,但是却多了一个如下的使用介绍:
" Benchmark 127.0.0.1:6379 for a few commands producing CSV output:\n"
" $ redis-benchmark -t ping,set,get -n 100000 --csv\n\n"
在测试机上实验输出如下:
[work@ bin]$ ./redis-benchmark -p 32495 -t ping,set,get -n 100000
====== PING_INLINE ======
100000 requests completed in 1.52 seconds
50 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
65746.22 requests per second
====== PING_BULK ======
100000 requests completed in 1.39 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.99% <= 1 milliseconds
100.00% <= 1 milliseconds
71890.73 requests per second
====== SET ======
100000 requests completed in 1.34 seconds
50 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
74794.31 requests per second
====== GET ======
100000 requests completed in 1.34 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.98% <= 1 milliseconds
100.00% <= 1 milliseconds
74626.87 requests per second
[work@ bin]$ ./redis-benchmark -p 32495 -t ping,set,get -n 100000 --csv
"PING_INLINE","72992.70"
"PING_BULK","72202.16"
"SET","74962.52"
"GET","74239.05"
这是redis-benchmark的测试结果,那redis-cli是怎么用的呢?
[work@ redis]$ redis-cli -p 33367 mget a b c d e
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
[work@ redis]$ redis-cli -p 33367 --raw mget a b c d e
1
2
3
4
5
[work@ redis]$ redis-cli -p 33367 --csv mget a b c d e
"1","2","3","4","5"
源码中关于csv的定义使用如下:
else if (config.csv) {
printf("\"%s\",\"%.2f\"\n", config.title, reqpersec);
由此可见,加上csv只是更改了一下输出的格式
[work@ redis]$ redis-cli --help
redis-cli 4.0.12
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> Server hostname (default: 127.0.0.1).
-p <port> Server port (default: 6379).
-s <socket> Server socket (overrides hostname and port).
-a <password> Password to use when connecting to the server.
-u <uri> Server URI.
-r <repeat> Execute specified command N times.
-i <interval> When -r is used, waits <interval> seconds per command.
It is possible to specify sub-second times like -i 0.1.
-n <db> Database number.
-x Read last argument from STDIN.
-d <delimiter> Multi-bulk delimiter in for raw formatting (default: \n).
-c Enable cluster mode (follow -ASK and -MOVED redirections).
--raw Use raw formatting for replies (default when STDOUT is
not a tty).
--no-raw Force formatted output even when STDOUT is not a tty.
--csv Output in CSV format.
--stat Print rolling stats about server: mem, clients, ...
--latency Enter a special mode continuously sampling latency.
If you use this mode in an interactive session it runs
forever displaying real-time stats. Otherwise if --raw or
--csv is specified, or if you redirect the output to a non
TTY, it samples the latency for 1 second (you can use
-i to change the interval), then produces a single output
and exits.
--latency-history Like --latency but tracking latency changes over time.
Default time interval is 15 sec. Change it using -i.
--latency-dist Shows latency as a spectrum, requires xterm 256 colors.
Default time interval is 1 sec. Change it using -i.
--lru-test <keys> Simulate a cache workload with an 80-20 distribution.
--slave Simulate a slave showing commands received from the master.
--rdb <filename> Transfer an RDB dump from remote server to local file.
--pipe Transfer raw Redis protocol from stdin to server.
--pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
no reply is received within <n> seconds.
Default timeout: 30. Use 0 to wait forever.
--bigkeys Sample Redis keys looking for big keys.
--hotkeys Sample Redis keys looking for hot keys.
only works when maxmemory-policy is *lfu.
--scan List all keys using the SCAN command.
--pattern <pat> Useful with --scan to specify a SCAN pattern.
--intrinsic-latency <sec> Run a test to measure intrinsic system latency.
The test will run for the specified amount of seconds.
--eval <file> Send an EVAL command using the Lua script at <file>.
--ldb Used with --eval enable the Redis Lua debugger.
--ldb-sync-mode Like --ldb but uses the synchronous Lua debugger, in
this mode the server is blocked and script changes are
are not rolled back from the server memory.
--help Output this help and exit.
--version Output version and exit.
Examples:
cat /etc/passwd | redis-cli -x set mypasswd
redis-cli get mypasswd
redis-cli -r 100 lpush mylist x
redis-cli -r 100 -i 1 info | grep used_memory_human:
redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
redis-cli --scan --pattern '*:12345*'
(Note: when using --eval the comma separates KEYS[] from ARGV[] items)
When no command is given, redis-cli starts in interactive mode.
Type "help" in interactive mode for information on available commands
and settings.