redis.conf構成説明


現在使用されているRedisバージョンは2.6.14、以内Redisである.confには比較的詳細な注釈があり、本文の多くは翻訳であり、個人の実際の構成過程で出会ったいくつかの問題を加えている.
基本設定
1.準備
構成中にメモリサイズを設定する必要がある場合は、1 k、5 GB、4 Mなどの類似のフォーマットを使用して、次のように変換できます(大文字と小文字を区別しません):
1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 1024*1024 bytes
1g => 1000000000 bytes
1gb => 1024*1024*1024 bytes
 2. daemonize no
デフォルトではredisはバックグラウンドで実行されません.バックグラウンドで実行する必要がある場合は、その値をyesに変更します.
3. pidfile/var/run/redis.pid
Redisがバックグラウンドで実行されると、Redisはデフォルトでpidファイルを/var/run/redisに配置します.pid、他のアドレスに設定できます.複数のredisサービスを実行する場合は、異なるpidファイルとポートを指定する必要があります.
4. port 6379
redisが実行するポートの指定
5. bind 127.0.0.1
ネット上の記事を見ると、ここでは「redisはIPアドレスからのリクエストのみを受信することを指定し、設定しない場合はすべてのリクエストを処理し、本番環境では設定したほうがよい」と翻訳されていることが多い.この解釈はtotallyが初心者を混乱させ、甚だしきに至っては間違っている.ここの英語の原文は
?
1
2
3 # If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. # bind 127.0.0.1
ここでbindはinterface,すなわちネットワークインタフェースであることを説明する.サーバは、1つのネットワークインタフェース(一般的にはネットワークカード)または複数を有することができる.例えば、マシンには2つのNICがあり、それぞれ192.168.205.5と192.168.205.6であり、bind 192.168.205.5の場合、このNICアドレスだけが外部要求を受け、バインドされていない場合、2つのNICポートは要求を受け入れる.
6. timeout 0
クライアント接続時のタイムアウト時間を秒単位で設定します.クライアントがこの間何の命令も出さなかった場合、server側は接続を閉じます.0は、この設定をオフにします.
7. tcp-keepalive 0
TCP接続が長い接続かどうかを指定します.「探偵」信号はserver側で維持され、長い接続はserver側の支出を追加します.
デフォルトは0です.無効を表し、0以外の値は「長い接続」をオンにします.探偵」信号の送信間隔はlinuxシステムで決定されます
複数の「探偵」の後、ピアが返信しない場合、接続は閉じられます.そうしないと、接続は開かれます.
クライアント側のsocketはkeepaliveオプションを構成することによって、「長い接続」を開くこともできる.
8. loglevel notice
serverログレベル、正当値:debug,verbose,notice,warningデフォルトnotice
debugは開発環境に適しており、クライアント操作情報はログを出力する.
verboseは比較的有用な情報を出力し、現在の効果は不明である.
noticeは生産環境に適しているwarning異常情報9. logfile
Redisログの記録方法を指定します.デフォルトはstdoutです.
10. databases 16
redisが許容する最大「dbクラスタ」の個数を設定し、デフォルトは16クラスタである.
クライアントは、「select」コマンドで使用する「dbクラスタ」インデックス番号を指定できます.デフォルトは0です.
redisの最上位データ構造では、すべてのK-Vに「dbクラスタ」インデックス番号が潜在的に含まれており、いずれのkeyも「db」に属する.
データの取得は、指定された「db」のみを上書きします.例えば、データが「db 10」に挿入すると、「db 1」でgetを除去しnullを返す.
データを異なるdbクラスタに分類することは、異なるクライアント接続に基づいて異なるdbインデックス番号を指定するなど、特定のニーズを実現するのに役立つ.
Snapshotting構成
1. save
saveは、「数秒の間に少なくともどれだけの変更操作が行われたか」を記述するためにsnapshotをトリガーする
snapshotは最終的に新しいdumpを生成する.rdbファイル
save""snapshot機能を無効にする
例えばsave 300 1は5分以内の少なくとも1つのkey変更を表し、snapshotをトリガする
2. rdbcompression yes
rdbファイル圧縮手段を有効にするかどうかは、デフォルトでyes.
圧縮には追加のcpuコストが必要になる場合があるが、rdbファイルのサイズを効果的に低減することができ、記憶/バックアップ/転送/データ復旧に有利である.
3. rdbchecksum yes
rdbファイルに対してCRC 64チェックサムを使用するかどうかは、デフォルトでは「yes」である、rdbファイルの内容の末尾にCRCチェックサムが追加される.
他のサードパーティ検証ツールでは、ファイルの整合性を容易に検出できます.
4. dbfilename dump.rdb
rdbファイルの名前を指定する
5. dir ./
rdb/OFファイルのディレクトリの場所を指定します.フォルダのみファイルにできません.
Replication
1. slaveof
現在のserverをslaveとし、master情報を指定する.
 Security
 requirepass foobared
現在のserverの認証パスワード
クライアントまたはslaveがこのサーバと対話する前に、パスワードをコミットする必要があります.他のサーバのmasterauth構成とこのパラメータ値は一致しています.
パスワードは十分複雑である必要があります(64バイト)
masterauth
認証でmasterに接続します.マスターで「パスワード保護」が使用されている場合は、接続に成功するには、slaveが正しい認証パスワードを渡す必要があります.
「requirepass」構成項目は、現在のserverのパスワードを指定します.
この構成項目の値はmasterマシンの「requirepass」と一致する必要があります.
slave-serve-stale-data yes
現在のserverがslaveである場合、slaveがmasterと通信を失った場合、クライアントにサービスを提供し続けるかどうかは、「yes」は継続を表し、「no」は終了を表す.
「yes」の場合、slaveはクライアントに読み取り専用サービスを継続する、このときのデータが期限切れになる可能性がある.
「no」の場合、このサーバに送信データ要求サービス(クライアントおよびこのサーバのslaveを含む)は、「error」に通知される.