ホームページ  >  記事  >  データベース  >  Redis 設定ファイル redis.conf の詳細な分析

Redis 設定ファイル redis.conf の詳細な分析

coldplay.xixi
coldplay.xixi転載
2021-02-22 09:46:254986ブラウズ

Redis 設定ファイル redis.conf の詳細な分析

推奨 (無料): redis チュートリアル

記事ディレクトリ

  • 1. 一般的に使用される 30 の構成
  • 2. Redis メモリ削減戦略
    • 2.1 データのタイムアウトの設定
    • 2.2 LRU アルゴリズムを使用して未使用のデータを動的に削除します
  • #3. Redis のカスタム構成

次の場合に留意してくださいLinux での開発: ソフトウェアはデフォルトで /opt にインストールされます。工場出荷時の設定で構成ファイルを直接変更しないでください。正しい方法は、操作する前にコピーをバックアップすることです

Redis 構成ファイルは、Redis インストール ディレクトリにあります。ファイル名は reids.conf です。一般的に使用される 30 個の構成を次に示します。記事には英語の翻訳が付いています。 redis.conf ファイル。

1. よく使用される 30 の構成


最初の 10 の構成

  • daemonize no
    Redis はデフォルトではデーモン プロセスとして実行されません。デーモン プロセスを有効にするには、yes に変更できます。

  • pidfile /var/run/redis/pid
    Redis がデーモンとして実行される場合、Redis はデフォルトで pid を保存します。 /var/run/redis.pid ファイルを書き込みます。pidfile を通じてパスを指定できます。

  • port 6379
    Redis のリッスン ポートを指定します。

  • bind 127.0.0.1
    Redis によってバインドされるホスト アドレス。

  • timeout 300
    接続を閉じる前にクライアントがアイドル状態になる時間を設定します。0 の場合は、接続を終了することを意味します。この機能をオフにします。

  • loglevel verbose
    ログ レベルを指定します。Redis は、デバッグ、詳細 (デフォルト)、通知、警告の 4 つのレベルをサポートします。

  • logfile stdout
    ロギング モード。Redis がデーモン プロセスとして構成されている場合、デフォルトは標準出力です。ここでモードが標準出力の場合、ログは /dev/null

  • ##databases 16# に送信されます。 ## 設定 データベースの数。デフォルトの数値は 0 です。select
    コマンドを使用して、接続上のデータベース ID を指定できます。

  • save
  • <変更>

    一定期間内に更新操作が何回あるかを指定し、その後、データはデータ ファイルに同期され、複数の条件と一致させることができます。 Redis 構成ファイルには 3 つの条件が指定されています: save 900 1; save 300 10; save 60 10000

  • rdbcompression
  • yes

    データをローカル データベースに保存するときにデータを圧縮するかどうかを指定します。デフォルトは [はい] です。Redis は LZF (圧縮アルゴリズム) 圧縮を使用します。CPU 時間を節約したい場合は、このオプションをオフにすることができますが、データベースファイルが巨大化します。

  • #真ん中の 10 個の構成

##dbfilename

dump.rdb
  • ローカル データベース ファイル名を指定します。デフォルト値は dump.rdb
    dir

    ./
  • を指定します。ローカル データベース ストレージ ディレクトリ
    slaveof

  • Society このマシンがスラブにサービスを提供する場合、マスター サービス Redis の起動時に、IP アドレスとポートがマスターからのデータを自動的に同期します。 ## マスター サービスがパスワードで保護されている場合、マスターに接続するためのスラブ サービスのパスワード。
    requirepass

    foabared
  • Redis の接続パスワードを設定します。接続パスワードが設定されている場合、クライアントは次のときにパスする必要がありますAUTHこのコマンドはパスワードを提供しますが、デフォルトでは無効になっています。

  • maxclients
  • 128

    同時にクライアント接続の最大数を設定します。デフォルトは無制限です。Redis はクライアントを開くことができますこの数は、Redis プロセスが開くことができるファイル記述子の最大数です。 maxclients が 0 に設定されている場合、制限がないことを意味します。クライアント接続の数が制限に達すると、Redis は新しい接続を閉じ、クライアントの最大数に達したというエラー メッセージをクライアントに返します。
    ##maxmemory

  • Redis の最大メモリ制限を指定します。Redis は起動時にデータをメモリにロードします。最大メモリに達すると、Redis は最初に期限切れまたは期限切れのキーをクリアしようとします。このメソッドが処理された後も、最大メモリ設定にまだ達しているため、書き込み操作はできなくなりますが、読み取り操作は引き続き実行できます。 Redis の新しい vm メカニズムは、キーをメモリに保存し、値をスワップ領域に保存します。

    appendonly
    no

  • 更新操作後にログを記録するかどうかを指定します。Redis はデフォルトでワンストップです。データをディスクに書き込みます。がオンになっていない場合、停電中に一定期間データが失われる可能性があります。

  • appendfilename appendonly.aof
    更新ログ ファイル名を指定します。デフォルトは appendonly.aof です。

  • appendsync everysec
    更新ログの条件を指定します。オプションは 3 つあります:
    ①no: 動作待ちを示します。システムが完了するまでのシステム データ キャッシュはディスクに同期されます (高速)、
    ②常に: オペレーティング システムの更新のたびに fsync() を手動で呼び出してデータをディスクに書き込むことを意味します (低速、安全)、
    ③毎秒: 素晴らしい同期を 1 回行うことを意味します (効率の低下)、デフォルト値です)

最後の 10

  • vm-enable no
    仮想メモリ メカニズムを有効にするかどうかを指定します。デフォルト値は no です。VM メカニズムはデータをページに保存します。Redis は、アクセスの少ないページ、つまりコールド データを、アクセスの多いページは、メモリ内のディスクによって自動的にスワップアウトされます。
  • vm-swap-file /tmp/redis.swap
    仮想メモリ ファイル パス。デフォルト値は /tmp/redis.swap です。それ以上ではありません。複数の Redis インスタンス共有。
  • vm-max-memory 0
    vm-max-memory の設定に関係なく、vm-max-memory を超えるすべてのデータを仮想メモリに保存します。 Small 、すべてのインデックス データはメモリに保存されます (Redis インデックス データはキーです)。つまり、vm-max-memory が 0 に設定されている場合、すべての値は実際にディスク上に存在します。デフォルト値は 0
  • vm-page-size 32
    Redis スワップ ファイルは多くのページに分割されており、オブジェクトは複数のページに保存できます。ページ。ただし、ページを複数のオブジェクトで共有することはできません。vm-page-size は、保存されたデータのサイズに応じて設定されます。小さなオブジェクトが多数保存されている場合、ページ サイズは 32 バイトまたは 64 バイトに設定するのが最適です。大きなオブジェクトが保存されます。より大きなページを使用できます。よくわからない場合は、デフォルト値を使用してください。
  • vm-pages 134217728
    スワップ ファイル内のページ数を設定します。これは、ページ テーブル (ページが空きであるか使用中であるかを示すビットマップ) が異なるためです。 ) がメモリに配置され、ディスク上の 8 ページごとに 1 バイトのメモリが消費されます。
  • vm-max-threads 4
    スワップ ファイルにアクセスするスレッドの数を設定します。マシンのコア数を超えないようにしてください。 0 に設定すると、すべてのペア スワップ ファイルの操作はすべてシリアルであり、長い遅延が発生する可能性があります。デフォルト値は 4 です。
  • glueoutputbuf yes
    クライアントに応答するときに、小さなパケットを 1 つのパケットに結合して送信するかどうかを設定します。デフォルトはオンです。
  • ハッシュ最大ジップマップエントリ 64/ハッシュ最大ジップマップ値 512
    特定の数値を超えた場合、または最大の要素が特定のしきい値を超えた場合に、特別なハッシュ アルゴリズムが使用されることを指定します。
  • activerehashing yes
    リハッシュをアクティブにするかどうかを指定します。デフォルトはオンです。
  • include /path/to/local.conf
    他の構成ファイルのインクルードを指定します。複数の Redis インスタンス間で同じ構成ファイルを使用できます。同じホスト構成ファイルであり、各インスタンスには独自の固有の構成ファイルがあります。

2. Redis のメモリ削減戦略

優れたキャッシュ ミドルウェアとして、Redis は、クラスター デプロイメントが使用されている場合でも、大量のデータを保存することがよくあります。動的に容量を拡張するときは、システムのパフォーマンスを維持するためにメモリもすぐにクリアする必要があります。

2.1 データのタイムアウトを設定します

  • キーの有効期限 (秒単位) これは最も一般的に使用される方法です
  • setex(String Key, int minutes, String value) 文字列固有のメソッド

有効期限を設定する文字列固有のメソッドに加えて、他のすべてのメソッド時刻を設定するには、expired メソッドに依存する必要があります。
時間が設定されていない場合、キャッシュは期限切れになりません。
有効期限を設定し、後でキャッシュを期限切れにしないようにする場合は、persist key

2.2 LRU アルゴリズムを使用して未使用のデータを動的に削除します

メモリ管理のためのページ置換アルゴリズム。メモリ内にあるが使用されていないデータ ブロック (メモリ ブロック) は LRU と呼ばれます。オペレーティング システムは、これらのデータ ブロックをメモリから削除し、データに基づいてロード用のスペースを確保します。 LRUに属する追加データ。

  1. volatile-lru タイムアウト期間を設定したデータのうち、最も使用頻度の低いデータを削除します

  2. # allkeys-lru すべてのキーの中で最も使用頻度の低いデータをクエリして削除する、これは最も広く使用されている戦略です。

  3. volatile-random タイムアウトが設定されたデータをランダムに削除します

  4. allkeys-random すべてのキーをクエリし、ランダムに削除します。

  5. volatile-ttl 設定されたタイムアウトですべてのデータをクエリし、それらを並べ替えて状態データを収集します。 Delete

  6. noeviction この属性に設定すると、削除操作は実行されず、メモリがオーバーフローした場合はエラーが返されます

  7. volatile-lfu タイムアウトが設定されたすべてのキーから最も使用頻度の低いキーを削除します

  8. allkeys-lfu すべてのキーから最も使用頻度の低いキーを削除します

3. カスタム構成 Redis

対応するインストール ディレクトリ /usr/local/redis に移動し、redis.conf 構成ファイルを変更します。

初心者として、Redis は通常、次の 3 つの項目を変更する必要があります:

  • daemonize nodaemonize # に変更します。 ## yes、つまり、代わりにデーモン プロセスとして開始されます。
  • bind
  • 127.0.01 をコメント アウトして、ローカル マシン以外のマシンが Redis サービスにアクセスできるようにします。
  • requirepass
  • パスワードを設定 を使用すると、サービスのセキュリティが確保されます。まれに、パスワードを設定しないとリモート アクセスができなくなります。
Redis はシングルプロセス マルチスレッド モードを採用しています。 redis.conf の daemonize オプションが yes に設定されている場合、デーモン プロセス モードが有効であることを意味します。このモードでは、redis はバックグラウンドで実行され、プロセスの pid 番号を redis.conf オプション pidfile で設定されたファイルに書き込みます。このとき、プロセスが手動で強制終了されない限り、redis は常に実行されます。ただし、daemonize オプションが no に設定されている場合、現在のインターフェイスは redis コマンド ライン インターフェイスに入ります。終了または接続ツール (Putty、xshell など) を閉じることによって強制的に終了すると、redis プロセスが終了します。サーバー側で開発されたアプリケーションのほとんどはバックグラウンドで実行されます。

その他の関連学習:

redis

以上がRedis 設定ファイル redis.conf の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。