Redis Shell

4227 ワード

Redisは、redis-cli、redis-server、redis-benchmarkなどのShellツールを提供しています.それらは比較的に簡単ですが、スズメは小さくて五臓がそろっていますが、時には巧みにいくつかの問題を解決することができます.

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