Redis Shell
4227 ワード
Redisは、redis-cli、redis-server、redis-benchmarkなどのShellツールを提供しています.それらは比較的に簡単ですが、スズメは小さくて五臓がそろっていますが、時には巧みにいくつかの問題を解決することができます.
redis-cli詳細
redis-cli詳細
1、-r
-r(repeat)オプションは、コマンドを複数回実行することを表します.たとえば、次の操作でpingコマンドを3回実行します.$ redis-cli -r 3 ping
PONG
PONG
PONG
PONG
2、-i
-i(interval)オプションは、数秒ごとにコマンドを実行することを意味しますが、-iオプションは-rオプションと一緒に使用する必要があります.次の操作は、1秒ごとにpingを5回実行します.$ redis-cli -r 5 -i 1 ping
PONG
PONG
PONG
PONG
PONG
注意-iの単位は秒で、ミリ秒はサポートされていませんが、10ミリ秒ごとに実行する場合は-i 0.01を使用します.たとえば、次のようにします.$ redis-cli -r 5 -i 0.01ping
PONG
PONG
PONG
PONG
PONG
例えば、次の操作は-rと-iオプションを用いて、メモリの使用量を1秒おきに出力し、合計100回出力する$ redis-cli -r 100 -i 1 info |grep used_memory_human
used_memory_human:793.10K
used_memory_human:793.10K
used_memory_human:793.10K
··········································
used_memory_human:793.10K
3、-x
-xオプションは、redis-cliの最後のパラメータとして標準入力(stdin)からデータを読み出すことを表します.たとえば、次の操作で文字列worldがset helloの値として使用されます.$ echo "world" | redis-cli -x set hello
OK
4、-c
-c(cluster)オプションは、Redis Clusterノードを接続する際に使用する必要があります.-cオプションはmovedとaskの異常を防止します.
5、-a
Redisがパスワードを設定している場合は、-a(auth)オプションを使用できます.このオプションがあれば、手動でauthコマンドを入力する必要はありません.
6、--scanと--pattern
--scanオプションと--patternオプションは、指定したモードのキーをスキャンするために使用され、scanコマンドを使用することに相当します.
7、--slave
--slaveオプションは、現在のクライアントを現在のRedisノードにシミュレートするスレーブノードであり、現在のRedisノードの更新操作を取得するために使用することができ、このオプションを合理的に利用して、現在のRedisノードに接続されている更新操作の一部を記録することができ、これらの更新操作は実際にビジネスを開始する際に必要なデータである可能性が高い.
次に、最初のクライアントを開きます.--slaveオプションを使用して、同期が完了したことを確認します.$ redis-cli --slave
SYNC with master, discarding 95 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
別のクライアントを開いて更新操作を行います.$ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> incr count
(integer) 1
127.0.0.1:6379> get hello
"world"
別のクライアントを開いて更新操作を行います$ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> incr count
(integer) 1
127.0.0.1:6379> get hello
"world"
最初のクライアントは、Redisノードの更新を受信します.$ redis-cli --slave
SYNC with master, discarding 95 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","hello","world"
"incr","count"
注意:PINGコマンドは、マスターコピーによるものです.
8、--rdb
--rdbオプションは、RedisインスタンスにRDB永続化ファイルの生成と送信を要求し、ローカルに保存します.永続化されたファイルの定期的なバックアップに使用できます.
9、--pipe
--pipeオプションは、コマンドをRedis通信プロトコル定義のデータフォーマットにカプセル化し、Redis実行に一括送信するために使用されます.
10、--bigkeys
--bigkeysオプションは、scanコマンドを使用してRedisのキーをサンプリングし、メモリが比較的大きなキー値を占めていることを示します.これらのキーはシステムのボトルネックになる可能性があります.
11、--eva
--evalオプションは、指定したLuaスクリプトを実行します.
12、--latency
latencyには、--latency、--latency-history、--latency-distの3つのオプションがあります.ネットワーク遅延を検出することができ、Redisの開発と運用に非常に役立ちます.
13、--stat
--statオプションでは、infoコマンドの統計はより完全ですが、requestsなどの増分データをリアルタイムで表示することは、Redisの運用次元に役立ちます.次のようになります.$ redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
2 1.79M 2 0 1922200 (+0) 22
2 1.79M 2 0 1922201 (+1) 22
2 1.79M 2 0 1922202 (+1) 22
2 1.79M 2 0 1922203 (+1) 22
14、--rawと--no-raw
--no-rawオプションは、コマンドの戻り結果が元のフォーマットでなければならないことを要求します.--rawは正反対で、フォーマットされた結果を返します.Redisで中国語のvalueを設定します.$ redis-cli set hello " "
OK
getが正常に実行されているか、--no-rawオプションが使用されている場合、返される結果はバイナリ形式です.$ redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
$ redis-cli --no-raw get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
--rawオプションを使用すると、中国語が返されます.$ redis-cli --raw get hello
$ redis-cli -r 3 ping
PONG
PONG
PONG
PONG
$ redis-cli -r 5 -i 1 ping
PONG
PONG
PONG
PONG
PONG
$ redis-cli -r 5 -i 0.01ping
PONG
PONG
PONG
PONG
PONG
$ redis-cli -r 100 -i 1 info |grep used_memory_human
used_memory_human:793.10K
used_memory_human:793.10K
used_memory_human:793.10K
··········································
used_memory_human:793.10K
$ echo "world" | redis-cli -x set hello
OK
$ redis-cli --slave
SYNC with master, discarding 95 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
$ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> incr count
(integer) 1
127.0.0.1:6379> get hello
"world"
$ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> incr count
(integer) 1
127.0.0.1:6379> get hello
"world"
$ redis-cli --slave
SYNC with master, discarding 95 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","hello","world"
"incr","count"
$ redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
2 1.79M 2 0 1922200 (+0) 22
2 1.79M 2 0 1922201 (+1) 22
2 1.79M 2 0 1922202 (+1) 22
2 1.79M 2 0 1922203 (+1) 22
$ redis-cli set hello " "
OK
$ redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
$ redis-cli --no-raw get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
$ redis-cli --raw get hello