滅多にredis-cliコマンドを使うことは無いと思いますが、障害調査の際なんかに知ってるとここぞという時に便利だったりするので自分用リファレンスメモとして残しておこうと思います。
↓コマンドリファレンスです。
Commands
基本的な使い方
ローカルのredisに対話モードで接続
# redis-cli
リモートのredisに対話モードで接続
redis-cli -h ホストのIP -p ポート(デフォルトは6379) -a パスワード
# redis-cli -h 10.120.10.1 -p 6379 -a hogehoge
ワンライナーでコマンド実行
対話モードで何回もコマンド実行が必要ない場合に知ってると便利です。
一番後ろにコマンドつけるだけです。下の例だと「keys test*」がコマンドです。
# redis-cli -h 10.120.10.1 -p 6379 -a hogehoge keys test*
ワンライナーで複数コマンド実行
改行でコマンドを区切るだけです。
# echo -e "keys test* \r\n get test1" | redis-cli -h 10.120.10.1 -p 6379 -a hogehoge
redis-cliのその他オプション
redis-cli –helpしたら見れますw
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.
-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.
--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.
--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.
よく使うコマンド
全てのキーを削除
flushall
dbsizeで件数が取得できます。以下実行例です。
# redis-cli dbsize
(integer) 5
# redis-cli flushall
OK
# redis-cli dbsize
(integer) 0
テストデータ生成
key:0からkey:100まで生成する例です。
# redis-cli debug populate 10
OK
# redis-cli dbsize
(integer) 10
保存、取得、削除
setで保存、getで取得。
# redis-cli set key:1 test
OK
# redis-cli get key:1
"test"
# redis-cli get key:2
(nil)
delで削除
# redis-cli del key:1
(integer) 1
# redis-cli -a mypass get key:1
(nil)
setnxはキーが存在しなかった場合のみ保存
# redis-cli setnx key:1 test1
(integer) 1
# redis-cli setnx key:1 test2
(integer) 0
# redis-cli get key:1
"test1"
DB切り替え
-nオプションを指定するかselectコマンドを使う
# redis-cli -n 0 keys "test*"
もしくは
select 0
KEYの検索
キーを忘れてしまった時になんかに便利。ワイルドカード指定が可能。
# redis-cli keys "key:*"
1) "key:7"
2) "key:6"
3) "key:5"
4) "key:1"
モニタリング
tail -fみたいな感じでredisへのアクセスをモニタリング
# redis-cli monitor
OK
1552539143.868483 [0 127.0.0.1:44510] "GET" "key:100"
redisサーバ情報の確認
# redis-cli info