redis入門ガイド(7)-セキュリティ、プロトコル、管理ツール、コマンド属性

3056 ワード

前に書く


『redis入門ガイド』のノートを学び、実践と結びつけて、重要なことだけを記録し、明確にし、新しい知識に属する関連内容である。

 

安全


1、bindパラメータを使用してアドレスをバインドし、redisがこのアドレスの接続のみを受け入れるようにすることができる.
2、requirepassパラメータを使用して、クライアント接続のたびにパスワードを送信するようにredisパスワードを設定します.レプリケーションを実行するとき、マスターライブラリにパスワードが設定されている場合は、マスターライブラリのパスワードをマスターauthパラメータで設定する必要があります.
3、コマンドの名前を変更するには、プロファイルにパラメータrename-commandを構成する必要があります.フォーマットは次のとおりです.
1 rename-command            

コマンドを無効にするには、空の文字列""の名前を変更します.
 

つうしんプロトコル


4、redisは2つのプロトコルをサポートし、1つは比較的直感的にtelnetに入力された簡単なプロトコルであり、もう1つはバイナリセキュリティの統一要求プロトコルであり、この2つのプロトコルはコマンドのフォーマットに違いがあり、コマンドの戻り値のフォーマットは同じである.
5、簡単なプロトコルはtelnetでredisと通信するのに適しており、フォーマットは簡単にコマンドと各パラメータをスペースで分けるだけである.
6、戻り値のフォーマットは5種類あります.
a、エラー返信
を選択します.
      -ERR unknown command 'haha'\r
b、状態回復
ステータス情報を追加し、rで終了
  +OK\r
c、整数回復
+で始まる
  +3\r
d、文字列返信
$で始まり、文字列の長さを追加し、rで区切り、文字列の内容を追加し、rで終わります.
  $3\rPONG\r
戻り値がnilの場合、$-1と空の文字列で区別されます.
e、複数行文字列返信
*で始まる文字列のグループ数をプラスしてrで区切って、文字列の返事の具体的な内容をプラスします
  *3\r$1\r3\r$1\r2\r$3\r1\r
7、統一要求プロトコルのフォーマットと複数行文字列の返信のフォーマットは類似している.例えば:
  SET foo bar
  *3\r$3\rSET\r$3\rfoo\r1\r$3\rbar\r
redisプライマリスレーブレプリケーションとAOFは、統合リクエストプロトコルを使用しています.
 

管理ツール


8、redis-cliを使用して消費時間ログを表示する
    SLOWLOG GET
プロファイルパラメータslow-log-slower-thanで時間のかかるコマンドの制限を設定します.単位はマイクロ秒で、負数に設定すると遅いログを閉じることを意味します.slow-max-lenはレコードの数を制限し、コマンドログをメモリに記録するのに時間がかかります.各時間消費コマンドログには、ログ一意id、実行UNIX時間、実行時間(マイクロ秒)、コマンドおよびそのパラメータの4つの構成要素があります.
9、コマンドモニタMONTITOR、このコマンドを実行すると、redisは実行したすべてのコマンドをredis-cliで印刷し、このコマンドは負荷能力を半分に下げ、デバッグにのみ使用します.(Instagramチームはpythonが開発したmonitorコマンドベースのツールredis-fainaを使用して、最も一般的なコマンドを分析したり、最も頻繁なキーなどの情報にアクセスしたりすることができます)
10、ツールRdbtoolsはredisのスナップショットファイル解析器であり、スナップショットデータをJSONデータファイルにエクスポートし、redis種の各キーの占有状況を分析することができる.また、各キーの格納状況をCSVファイルにエクスポートして分析しやすくすることもできます.例は次のとおりです.
1 rdb --command json /path/redisdump.rdb > rdboutput.json
2 rdb -c memory /path/redisdump.rdb > rdboutput.cvs

 

redisコマンドプロパティ


11、REDIS_CMD_WRITE
データベースデータが変更されることを示します.ライブラリから読み取り専用では実行できません.また、luaスクリプトではREDIS_を持つことを実行しています.CMD_RANDOMプロパティのコマンドの後、このプロパティを持つコマンドは実行できません.
12、REDIS_CMD_DENYOOM
redisが占有するストレージスペースを増やす可能性があることを示し、この属性を持つコマンドは必ずREDIS_を擁護する.CMD_WRITEプロパティは、逆ではありません.このコマンドは、プロファイルmaxmemoryパラメータで指定した値に達し、maxmemory-policyパラメータに従ってスペースを解放できない場合に拒否されます.
13、REDIS_CMD_NOSCRIPT
このプロパティを持つコマンドはスクリプトで実行できません.
14、REDIS_CMD_RANDOM
スクリプトでは、この属性を持つコマンドを実行した後、REDIS_を持つことはできません.CMD_WRITEプロパティのコマンド.
15、REDIS_CMD_SORT_FOR_SCRIPT
このプロパティを持つコマンドはランダムな結果を生成し、スクリプトで使用するとredisは結果をソートします.
16、REDIS_CMD_LOADING
redisは、起動時に(ハードディスクからメモリにデータをロードする)このプロパティを持つコマンドのみを実行します.