第三章:小機能大用途-Redis Shell
4007 ワード
3.2 Redis Shell
Redisは、redis-cli、redis-server、redis-benchmarkShellツールを提供します.それらは比較的に簡単ですが、スズメは小さくて五臓がそろっていますが、時には巧みにいくつかの問題を解決することができます.
3.2.1 redis-cli詳細
-hおよび-pパラメータに加えて、redis-cliには他のパラメータがあります.すべてのパラメータを理解するには、redis-cli--helpコマンドを実行して表示できます.-r-r(repeat)オプションは、コマンドを複数回実行することを意味します.たとえば、次の操作ではpingコマンドが3回実行されます. -i-i(interval)オプションは、数秒ごとにコマンドを実行することを意味しますが、-iオプションは-rオプションとともに使用する必要があります.次の操作は、1秒ごとにpingコマンドを実行し、合計5回実行します.
なお、-iの単位は秒であり、ミリ秒単位はサポートするが、10ミリ秒ごとに実行したい場合は-i 0.01を用いることができる.-x-xオプションは、標準入力(stdin)から読み出すデータをredis-cliの最後のパラメータとして表し、例えば以下の操作で文字列worldをset helloの値とする. -c-c(cluster)オプションは、Redis Clusterノードを接続する際に使用する必要があります.-cオプションはmovedとaskの異常を防ぐことができます.Redis Clusterについては10章で説明します. -a Redisがパスワードを設定している場合は、-a(auth)オプションを使用できます.このオプションがあれば、手動でauthコマンドを入力する必要はありません. --scanおよび--pattern--scanオプションおよび--patternオプションは、scanコマンド を使用することに相当する指定されたモードのキーをスキャンするために使用されます.--slave--slaveオプションは、現在のクライアントを現在のRedisノードにシミュレートするスレーブノードであり、現在のRedisノードの更新操作を取得するために使用できます.Redisレプリケーションについては6章で詳しく説明します.このオプションを適切に使用すると、実際にビジネスを開発する際に必要なデータである可能性の高い、現在接続されているRedisノードの更新操作の一部を記録できます. --rdb--rdbオプションは、RedisインスタンスにRDB永続化ファイルの生成と送信を要求し、ローカルに保存します.永続化されたファイルの定期的なバックアップに使用できます.Redis永続化については5章で詳しく説明する. --pipe--pipeオプションは、コマンドをRedis通信プロトコル定義のデータフォーマットにカプセル化し、Redis実行に一括送信するために使用されます.Redis通信プロトコルについては、4章で詳しく説明します.たとえば、set hello worldとincr counterの2つのコマンドが同時に実行されます. --bigkeys--bigkeysオプションはscanコマンドを使用してRedisのキーをサンプリングし、メモリが比較的大きなキー値を占めることを見出します.これらのキーはシステムのボトルネックになる可能性があります. --eval--evalオプション指定Luaスクリプト を実行するために使用されます.--latency latencyには、--latency、--latency-history、--latency-distの3つのオプションがあります.ネットワーク遅延を検出することができ、Redisの開発と運用に非常に役立ちます. --stat--statオプションはリアルタイムでRedisの重要な統計情報を取得することができ、infoコマンドの統計情報はより完全であるが、requestsなどの増分データをリアルタイムで見ることができ、Redisの運用次元に役立つ. --rawおよび--no-raw--no-rawオプションは、コマンドの戻り結果が元のフォーマットである必要があります.--rawは正反対で、フォーマットされた結果を返します.中国語の内容を返すには--raw.
3.2.2 redis-server詳細
redis-serverはRedisを起動するほか、test-memoryオプションもあります.redis-server--test-memoryは、現在のオペレーティングシステムが指定された容量のメモリをRedisに安定的に割り当てることができるかどうかを検出するために使用できます.この検出により、メモリの問題によるRedisのクラッシュを効果的に回避できます.例えば、次の操作により、現在のオペレーティングシステムがRedisに1 Gのメモリを提供できるかどうかを検出します.
メモリ全体の検出時間が長い.passed this testを出力ときにメモリの検出が完了したことを説明すると、最後にtest-memoryは単純な検出であり、より専門的なメモリ検出ツールを使用することができるという疑問がある.
3.2.3 redis-benchmark詳細
redis-benchmarkはRedisのためにベンチマーク性能テストを行うことができ、開発者と運営者がRedisの関連性能をテストするのに役立つ多くのオプションを提供し、以下ではこれらのオプションをそれぞれ紹介する.-c-c(clients)オプションは、クライアントの同時実行数(デフォルトは50)を表します. -n-n(num)オプションは、クライアント要求の合計量(デフォルトでは100000)を表します.例えば、redis−benchmark−c 100−n 20000は、100の各クライアントが同時にRedisを要求することを表し、合計20000回実行される.redis-benchmarkは各種データ構造のコマンドをテストし、性能指標を与える:
例えば、上述したように20000回のget操作が0.29秒で完了し、各要求データ量は3バイトであり、99.38%のコマンド実行時間は2ミリ秒未満であり、Redisは毎秒69686.41回のget要求を処理することができる.-q-qオプションはredis-benchmarkのrequests per second情報のみを表示し、具体的な詳細は表示しません -r redisは、パフォーマンステスト時に3つのキーを新規作成します.より多くのキーを挿入する場合は-rオプションを使用します. -t-tオプションでは、指定したコマンドを基準テストできます. --csv--csvオプションは、結果をcsv形式で出力し、Excelへのエクスポートなどの後続処理を容易にします.
Redisは、redis-cli、redis-server、redis-benchmarkShellツールを提供します.それらは比較的に簡単ですが、スズメは小さくて五臓がそろっていますが、時には巧みにいくつかの問題を解決することができます.
3.2.1 redis-cli詳細
-hおよび-pパラメータに加えて、redis-cliには他のパラメータがあります.すべてのパラメータを理解するには、redis-cli--helpコマンドを実行して表示できます.
redis-cli -r 3 ping
redis-cli -r 5 -i 1 ping
なお、-iの単位は秒であり、ミリ秒単位はサポートするが、10ミリ秒ごとに実行したい場合は-i 0.01を用いることができる.
echo "world" | redis-cli -x set hello
echo -en '*3\r
$3\r
SET\r
$5\r
hello\r
$5\r
world\r
*2\r
$4\r
incr\r
$7\r
counter\r
' | redis-cli --pipe
3.2.2 redis-server詳細
redis-serverはRedisを起動するほか、test-memoryオプションもあります.redis-server--test-memoryは、現在のオペレーティングシステムが指定された容量のメモリをRedisに安定的に割り当てることができるかどうかを検出するために使用できます.この検出により、メモリの問題によるRedisのクラッシュを効果的に回避できます.例えば、次の操作により、現在のオペレーティングシステムがRedisに1 Gのメモリを提供できるかどうかを検出します.
redis-server --test-memory 1024
メモリ全体の検出時間が長い.passed this testを出力ときにメモリの検出が完了したことを説明すると、最後にtest-memoryは単純な検出であり、より専門的なメモリ検出ツールを使用することができるという疑問がある.
3.2.3 redis-benchmark詳細
redis-benchmarkはRedisのためにベンチマーク性能テストを行うことができ、開発者と運営者がRedisの関連性能をテストするのに役立つ多くのオプションを提供し、以下ではこれらのオプションをそれぞれ紹介する.
====== GET ======
20000 requests completed in 0.29 seconds
100 parallel clients
3 bytes payload
keep alive: 1
46.99% <= 1 milliseconds
99.38% <= 2 milliseconds
100.00% <= 2 milliseconds
69686.41 requests per second
例えば、上述したように20000回のget操作が0.29秒で完了し、各要求データ量は3バイトであり、99.38%のコマンド実行時間は2ミリ秒未満であり、Redisは毎秒69686.41回のget要求を処理することができる.
127.0.0.1:6379> keys my*
1) "myset:__rand_int__"
2) "mylist"
3) "myhash"
redis-benchmark -t get,set -q