#1. 開始手順
#ここでは何も言うことはありません。サイズの場合、通常は k、gb、m の形式で単位を指定できますが、単位は大文字と小文字が区別されません。
2, INCLUDES
Redis には構成ファイルが 1 つしかないことがわかっています。複数の人がそれを開発および保守する場合、複数の構成ファイルが必要になります。このような構成ファイルの場合、/path/to/local.conf を介してここで複数の構成ファイルを構成でき、元の redis.conf 構成ファイルがメインゲートとして機能します。
ps: struts2 開発を使用したことがある学生の場合、プロジェクト チームで複数人が開発する場合、通常は複数の struts2.xml ファイルが存在し、これらもクラス構成を通じて導入されます。
さらに、この構成が redis.conf ファイルの先頭に記述されている場合、後続の構成によってインポートされたファイルの構成が上書きされることに注意してください。インポートされたファイルの内容を含める必要があります。構成は、redis.conf ファイルの最後に書き込まれます。
3、モジュール
redis3.0 の爆発的な機能は新しいクラスターであり、redis4.0 は 3.0 に含まれています。これをベースに新たな機能が追加されており、今回のカスタムモジュール構成もその一つです。ここのロードモジュール構成を通じて、いくつかの新しい機能を追加するカスタム モジュールが導入されます。
4、ネットワーク
ps: ここの設定は長いので、一部だけを抜粋しました。以下も同様です。
①.bind: Redis サーバーのネットワーク カード IP をバインドします。デフォルトは 127.0.0.1 で、これはローカル ループバック アドレスです。この場合、redis サービスへのアクセスはローカル クライアント接続を通じてのみ行うことができ、リモート接続を通じては行うことができません。バインド オプションが空の場合、利用可能なすべてのネットワーク インターフェイスからの接続が受け入れられます。
②. port: Redis を実行するポートを指定します (デフォルトは 6379)。 Redis はシングルスレッド モデルであるため、単一のマシン上で複数の Redis プロセスが開かれるとポートが変更されます。
③. timeout: クライアント接続時のタイムアウト時間を秒単位で設定します。この間にクライアントから何も指示がなかった場合、接続は切断されます。デフォルト値は 0 で、シャットダウンしないことを意味します。
④, tcp-keepalive: 単位は秒です。つまり、サーバーが常にブロックされるのを避けるために、クライアントがまだ正常な状態にあるかどうかを検出するために SO_KEEPALIVE が定期的に使用されます。公式の推奨値は次のとおりです。 300秒 0に設定すると定期的に検出されなくなります。
5、概要
詳細な構成の詳細:
①、daemonize: Redis を指定するには、yes に設定します。デーモンとして起動します (バックグラウンドで起動します)。デフォルト値は no
②、pidfile: PID ファイル パスを構成します。redis がデーモン プロセスとして実行されている場合、デフォルトで pid が /var/redis/run/redis_6379.pid ファイルに書き込まれます。
③, loglevel: ログレベルを定義します。デフォルト値は Notice で、次の 4 つの値があります。
debug (大量のログ情報を記録し、開発およびテスト段階に適しています)
verbose (より多くのログ情報) )
notice (適切な量のログ情報、運用環境で使用)
warning (一部の重要かつ重要な情報のみが記録されます)
④、ログファイル:configure log ファイルアドレスは、デフォルトでコマンドラインターミナルウィンドウに出力されます。
5. データベース: データベースの数を設定します。デフォルトのデータベースは DB 0 です。接続ごとに select
6. スナップショット
ここでの設定は主に永続化操作に使用されます。
①. save: Redis を起動する永続条件、つまりメモリ上のデータをいつハードディスクに保存するかを設定するために使用されます。デフォルトの設定は次のとおりです。
save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存 save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存 save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存
もちろん、Redis のキャッシュ機能のみを使用し、永続化が必要ない場合は、すべての保存行をコメントアウトして保存機能を無効にすることができます。空の文字列を直接使用して非アクティブ化を行うことができます: save ""
②, stop-writes-on-bgsave-error: デフォルト値は yes です。 RDB が有効で、最後のデータのバックグラウンド保存が失敗した場合、Redis がデータの受信を停止するかどうか。これにより、データがディスクに正しく保存されていないことがユーザーにわかります。そうしないと、障害が発生したことに誰も気づかなくなります。 Redis が再起動すると、再びデータの受信を開始できるようになります
③、rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。
④、rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。
⑤、dbfilename :设置快照的文件名,默认是 dump.rdb
⑥、dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。
7、REPLICATION
①、slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:
1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候
2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误
②、slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。
③、repl-diskless-sync:主从数据复制是否使用无硬盘复制功能。默认值为no。
④、repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。 这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。从站则要排队等待下一次RDB传送。因此服务器等待一段 时间以期更多的从站到达。延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。默认值为5。
⑤、repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。
Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。
8、SECURITY
①、rename-command:命令重命名,对于一些危险命令例如:
flushdb(清空数据库)
flushall(清空所有记录)
config(客户端连接后可配置服务器)
keys(客户端连接后可查看所有存在的键)
作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:
rename-command FLUSHALL ""
也可以保留命令但是不能轻易使用,重命名这个命令即可:
rename-command FLUSHALL abcdefg
这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。
9、CLIENTS
①、maxclients :设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。 描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
10、MEMORY MANAGEMENT
①、maxmemory:设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。
②、maxmemory-policy :当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择:
1) volatile-lru LRU アルゴリズムを使用して、期限切れのキーを削除します (LRU: 最も最近使用されていないキー)
2) allkeys-lru LRU アルゴリズムを使用してキーを削除します
3) volatile-random は有効期限付きのランダムなキーを削除します
4) allkeys-random はランダムなキーを削除します
5) volatile-ttl は期限切れが近づいているキーを削除します (マイナー TTL)
6) noeviction noeviction はキーを削除せず、書き込みエラーを返すだけです。デフォルトのオプション
③、maxmemory-samples: LRU および最小 TTL アルゴリズムは正確なアルゴリズムではありませんが、比較的正確なアルゴリズム (メモリを節約するため)。テストのサンプル サイズを自由に選択できます。Redis はデフォルトでテスト用に 3 つのサンプルを選択します。サンプルの数は maxmemory-samples で設定できます。
11. APPEND ONLY MODE
①、appendonly: デフォルトでは、redis は永続化に rdb モードを使用します。多くのアプリケーションにはこれで十分です。ただし、redis が途中でダウンした場合、数分間のデータ損失が発生する可能性があります。永続化は保存戦略に従って実行されます。追加のみファイルは、より優れた永続性特性を提供できるもう 1 つの永続化方法です。 Redis は書き込まれた各データを受信後、appendonly.aof ファイルに書き込みます。Redis を起動するたびに、まずこのファイルのデータをメモリに読み込み、最初に RDB ファイルを無視します。デフォルト値は「いいえ」です。
②、appendfilename: aof ファイル名、デフォルトは "appendonly.aof"
③、appendfsync: aof 永続化戦略の構成; fsync を実行しない手段はなく、オペレーティング システムが確実にディスクへのデータ同期。これは最速です。常に、データがディスクに確実に同期されるように、書き込みごとに fsync が実行されることを意味します。everysec は、fsync が 1 秒に 1 回実行されることを意味します。これにより、この 1 秒が失われる可能性があります。 data
④, no-appendfsync -on-rewrite: aof が書き換え中または rdb ファイルへの書き込み中、大量の IO が実行されます。このとき、毎秒および常時 aof モードでは、fsync が実行されます。 no-appendfsync-on-rewrite フィールド設定はデフォルトで no に設定されます。
アプリケーションに高いレイテンシ要件がある場合は、このフィールドを [はい] に設定できます。そうでない場合は、永続化機能にとってより安全な選択である [いいえ] に設定できます。これを「yes」に設定すると、再書き込み中に新しい書き込み操作が fsyncd されず、一時的にメモリーに保管され、再書き込みが完了した後に書き込まれます。デフォルトは「no」で、「yes」を推奨します。 Linux のデフォルトの fsync ポリシーは 30 秒です。 30 秒間のデータが失われる可能性があります。デフォルト値は「いいえ」です。
⑤、auto-aof-rewrite-percentage: デフォルト値は 100 です。 aof 自動書き換え設定では、現在の aof ファイル サイズが最後に書き換えられた aof ファイル サイズのパーセンテージを超えると、書き換えられます。つまり、aof ファイルが特定のサイズに増加すると、Redis は bgrewriteaof を呼び出してログ ファイルを書き換えることができます。現在の AOF ファイル サイズが、前回のログ書き換えで取得した AOF ファイルのサイズ (100 に設定) の 2 倍になると、新しいログ書き換えプロセスが自動的に開始されます。
⑥、auto-aof-rewrite-min-size: 64mb。合意されたパーセンテージに達してもサイズがまだ小さい場合に書き換えを回避するには、書き換えが許可される AOF ファイルの最小サイズを設定します。
⑦, aof-load-truncated: aof ファイルは最後に不完全である可能性があります. redis が起動すると、aof ファイルのデータがメモリにロードされます。 Redis が配置されているホスト オペレーティング システムがダウンした後に再起動が発生することがあります (特に ext4 ファイル システムに data=owned オプションが追加されていない場合)。この現象は発生します。Redis のダウンタイムや異常終了によってテールが不完全になることはありません。 redis を終了させるか、可能な限り多くのデータをインポートするかを選択できます。
「はい」を選択すると、切り詰められた aof ファイルがインポートされるときに、ログが自動的にクライアントにポストされてロードされます。 「いいえ」の場合、ユーザーは手動で redis-check-aof を実行して AOF ファイルを修復する必要があります。デフォルト値は「はい」です。
12. LUA スクリプト
①、lua-time-limit: Lua スクリプトの最大実行時間、ミリ秒以内にデフォルト値は 5000 です。
13、REDIS CLUSTER
①、クラスタ有効: クラスタ スイッチ、デフォルトはクラスターモデルを有効にします。
②、cluster-config-file: クラスター構成ファイルの名前 各ノードにはクラスター関連の構成ファイルがあり、クラスター情報が永続的に保存されます。このファイルは手動構成を必要としません。この構成ファイルは Redis によって生成および更新されます。各 Redis クラスター ノードには個別の構成ファイルが必要です。インスタンスが実行されているシステムの構成ファイル名と競合しないことを確認してください。デフォルトの構成は、nodes-6379.conf です。
③、cluster-node-timeout: 値は 15000 として設定できます。ノード相互接続タイムアウトしきい値、クラスターノードタイムアウトミリ秒
④、cluster-slave-validity-factor: 値は 10 に設定できます。フェイルオーバー中、すべてのスレーブはマスターになることを要求しますが、一部のスレーブが一定期間マスターから切断されている可能性があり、データが古すぎる可能性があります。そのようなスレーブはマスターに昇格させるべきではありません。このパラメータは、スレーブ ノードがマスターから長時間切断されているかどうかを判断するために使用されます。
判定方法は、スレーブの切断時間と (node-timeout * smile-validity-factor) repl-ping-slave-period を比較します。ノードのタイムアウトが 30 秒の場合、slave-validity-factorは 10 です。デフォルトの repl-ping-slave-period が 10 秒であると仮定します。つまり、310 秒を超えると、スレーブはフェイルオーバーを試行しません。
⑤、cluster-migration-barrier:値を 1 に設定します。マスターのスレーブ番号がこの値より大きい場合、スレーブは他の分離されたマスターに移行できます。このパラメーターが 2 に設定されている場合、マスター ノードに 2 つの動作中のスレーブ ノードがある場合にのみ、そのスレーブ ノードの 1 つが移行を試行します。 . .
⑥、cluster-require-full-coverage: デフォルトでは、クラスター内のすべてのスロットがノードを担当し、クラスターのステータスが OK の場合にのみサービスを提供できます。すべてのスロットが割り当てられていない場合にサービスを提供するには、no に設定します。この構成を有効にすることはお勧めできません。これにより、パーティション化中に小さなパーティションのマスターが常に書き込み要求を受け入れることになり、長期間にわたってデータの不整合が発生することになります。
redis についてさらに詳しく知りたい場合は、redis データベース チュートリアル 列に注目してください。
以上がRedis 構成ファイルの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。