Redis構成の詳細

2648 ワード

クライアントバッファoutput buffer
Redisはメモリ・データベースであることはよく知られていますが、これはすべてのデータがRAMによって直接管理され、提供されることを意味します.そのため、Redisは優れた交付性能を持ち、Redisはサブミリ秒レベルの遅延で数万、数十万の要求を処理することができる.Redisは、その名前とデザインのように、モバイルサーバであり、クライアント(通常)はネットワークを通じてRedisに接続されている.この場合、クライアントがクライアントに戻るよう要求する時間は、Redis CPUがRAMからデータを読み出す時間よりも著しく長くなる.これは、クライアントバッファが存在しない場合、Redisの主な相違は、この期間におけるサービスに対する応答に関係することを意味する.クライアント・バッファは、サービス・クライアントの要求に必要なメモリ領域を構成し、Redisの各接続には独自のバッファ領域が備えられています.要求を処理した後、Redisは応答データをクライアントバッファにコピーし、次の要求を処理し続け、同時にクライアントにネットワーク接続を通じてデータの読み取りを要求する.Redisクライアントバッファはredisに配置する.confファイル:
config get client-output-buffer-limit
1) "client-output-buffer-limit"
2) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"

output bufferは、クライアントに割り当てられたoutput bufferが予約サイズを超えた場合、Redisは構成ポリシーに従ってエンドとの接続を閉じるRedisがクライアントに割り当てられたバッファです.例えば、Redisがメッセージqueueとして使用され、注文メッセージのconsumer処理速度がメッセージを発行するproducerに追いつかないと、対応するoutput bufferが限界を超えてしまう場合がある.この構成項目のフォーマットは以下の通りです:client-output-buffer-limit:現在3種類のクライアントをサポートしています:1)normal=>normal clients;  2) slave clients and MONITOR clients;3)pubsub=>clients subcribed to at least one pubsub channel or pattern:output bufferサイズがこの値を超えると、Redisは直ちに対応するclientとの接続を閉じます.output bufferサイズがsoft limitを超え、この場合の持続時間がsoft secondsを超えると、Redisは対応するclientとの接続を閉じます.デフォルトの構成は、client-output-buffer-limit normal 0 0 client-output-buffer-limit slave 256 mb 64 mb 60 client-output-buffer-limit pubsub 32 mb 8 mb 60です.これらの数値は、バッファのソフトリミット、ハードリミット、および秒単位のタイムアウト(コピーバッファと同様)を表します.Redisが接続を終了すると、これらの値は保護され、顧客の読み取り応答を必要とせず、バッファサイズがaに達した場合、ソフトリミットを提供し、タイムアウトbまでステータスを維持する)ハードリミットを提供する.これらの値を0に設定すると、保護がオフになります.ただし、レプリケーション・バッファとは異なり、クライアント・バッファはRedisデータ・メモリ領域から取得されます.Redisの総メモリ値は、maxmemory命令によって設定でき、限界に達すると、その構成の駆逐ポリシー(maxmemory-policy命令によって定義される)が適用されます.したがって、低パフォーマンスのクライアントまたは多数の同時接続は、データセットサイズとクライアントバッファがメモリ制限に達しているため、Redisインスタンスの駆逐キーが早すぎるか、更新が禁止される可能性があります.
ライフサイクルの相対性のため、クライアントがパフォーマンスを低下させる必要がない場合、この現象が発生する可能性があります.RAM読み取りとネットワーク読み取りには大きな速度差があるため、高性能なクライアントとネットワーク接続でも、クライアントバッファが多すぎるとRedisメモリが消費される可能性があります.例えば、(万悪の)KEYS命令を考慮すると、この命令がトリガーされると、Redisはキーの名空間全体をクライアントバッファにコピーする.データベースに多くのキーがある場合は、駆逐につながる可能性があります.
Redisマスタスレーブ構成
主に単一点のグローバルredisに対してプライマリスレーブ構成を行い,aof方式でインクリメンタル更新要求データを行う.
メインのredis構成の最後に、redis.conf追加
include/data/redis/6379/instance.conf 
そして平級のinstance.confの内容
「appendonly yes」--デフォルトではappendonlyが生成されます.aofストレージデータmaxclients 180000 save」
からのredis配置の最後に、redis.conf追加
include/data/redis/6379/instance.conf
そして平級のinstance.confの内容
「appendonly yes」--デフォルトではappendonlyが生成されます.aof格納データsave""slaveof 10.104.5.98 6379---このアドレスが主のアドレスである