RedisはRedisバージョン5のapline(Alps)イメージを使用します。これは小さくて高速です。 新しいdocker-compose.ymlファイルを作成する 直接起動、接続パスワードは不要、構成は次のとおりです。 バージョン: '3.3' サービス: キャッシュ: 画像: redis:5-alpine 再起動: 常に ポート: - 「6379:6379」 ポートマッピング: 6379 (Redis のデフォルトポート) Redis を起動するには、docker-compose.yml ファイルのディレクトリで次のコマンドを実行します。
ヒント: ホスト上で docker サービスが起動するように設定されている場合、マシンの再起動後に redis が自動的に起動します。 リンクパスワードを設定する必要がある場合: バージョン: '3.3' サービス: キャッシュ: 画像: redis:5-alpine 再起動: 常に ポート: - 「6379:6379」 コマンド: ["redis-server", "--appendonly", "yes", "--requirepass","123456"] --requirepass その後のパラメータは設定する必要があるリンクパスワードです Redis を停止し、docker-compose.yml ファイルのディレクトリで次のコマンドを実行します。
追加知識: yum によってインストールされた redis (docker によってインストール) で認証パスワードを設定し、IP ログインを制限する 1. Redis設定パスワード 1.設定ファイルで設定する yumによってインストールされたredis設定ファイルは通常/etc/redis.confにあります。設定ファイルを開いて
行の前のコメントを削除し、パスワードを希望のパスワードに変更してファイルを保存します。
Redisを再起動する
または
この時、redisにログインしようとしたところ、ログインはできるものの、特定のコマンドを実行すると操作が許可されていないというメッセージが表示されました。 redis-cli -h 127.0.0.1 -p 6379 レディス 127.0.0.1:6379> redis 127.0.0.1:6379> キー * (エラー) ERR 操作は許可されていません redis 127.0.0.1:6379> 1を選択 (エラー) ERR 操作は許可されていません レディス 127.0.0.1:6379[1]> パスワードでログインし、特定のコマンドを実行して、正常に実行できるかどうかを確認します。
1) 「マイセット」 2) 「マイソートセット」 redis 127.0.0.1:6379> 1を選択 わかりました redis 127.0.0.1:6379[1]> config 取得 requirepass 1) 「requirepass」 2) 「マイレディス」 2. コマンドラインによる設定 redis 127.0.0.1:6379[1]> config に requirepass を設定します my_redis わかりました redis 127.0.0.1:6379[1]> config 取得 requirepass 1) 「requirepass」 2) 「my_redis」 Redisを再起動する必要はありません 最初の手順で設定ファイルに設定されている古いパスワードを使用して redis にログインすると、元のパスワードは使用できなくなり、操作が拒否されます。 redis-cli -h 127.0.0.1 -p 6379 -a myRedis redis 127.0.0.1:6379> config 取得 requirepass (エラー) ERR 操作は許可されていません 変更したパスワードを使用してredisにログインし、対応する操作を実行します。
1) 「requirepass」 2) 「my_redis redis を再起動し、新しく設定したパスワードを使用して redis にログインし、操作を実行しようとします。新しいパスワードが無効であることが判明し、redis は設定ファイル内のパスワードを再利用します。 sudo サービス redis を再起動 redis-server を停止しています: [ OK ] redis-server を起動しています: [ OK ] redis-cli -h 127.0.0.1 -p 6379 -a my_redis redis 127.0.0.1:6379> config 取得 requirepass (エラー) ERR 操作は許可されていません redis-cli -h 127.0.0.1 -p 6379 -a myRedis redis 127.0.0.1:6379> config 取得 requirepass 1) 「requirepass」 2) 「マイレディス」 ログイン時に -a パラメータを使用してパスワードを指定するだけでなく、パスワードを指定せずにログインし、操作を実行する前に認証を行うこともできます。 redis-cli -h 127.0.0.1 -p 6379 redis 127.0.0.1:6379> config 取得 requirepass (エラー) ERR 操作は許可されていません redis 127.0.0.1:6379> 認証 myRedis わかりました redis 127.0.0.1:6379> config 取得 requirepass 1) 「requirepass」 2) 「マイレディス」 3. マスターはパスワードを設定しましたが、スレーブはどのように設定しますか? マスターにパスワードが設定されている場合は、スレーブにも対応するパスワード パラメータが設定されている必要があります。そうしないと、正常なレプリケーションが実行できなくなります。 スレーブ構成ファイルで次の行を見つけ、コメントを削除してパスワードを変更します。
3. dockerでredisを設定する a. Dockerfileを書く redisから メンテナー「roamer <[email protected]>」 # 元のイメージ設定ファイルを置き換えるカスタマイズされた設定ファイル COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] #apt-get update && apt-get install vim -y を実行 b. Redis設定ファイルを書き込む このファイルが Dockerfile を通じてビルドされると、redis コンテナにコピーされ、redis-server の起動時にこの構成ファイルを使用するように指定されます。 # Redis 設定ファイルの例。 # # 設定ファイルを読み込むには、Redisが # 最初の引数としてファイルパスを指定して開始: # # ./redis-server /path/to/redis.conf # 単位に関する注意: メモリサイズが必要な場合は、 # 通常の形式では 1k 5GB 4M などとなります: # # 1k => 1000 バイト # 1kb => 1024バイト # 1m => 1000000 バイト # 1mb => 1024*1024 バイト # 1g => 1000000000 バイト # 1gb => 1024*1024*1024 バイト # # 単位は大文字と小文字を区別しないため、1GB、1Gb、1gB はすべて同じです。 ###################################### 含まれるもの ####################################### # ここに1つ以上の他の設定ファイルを含めます。これは、 # すべてのRedisサーバーに送られる標準テンプレートがありますが、 # サーバーごとの設定をいくつかカスタマイズします。インクルードファイルには # 他のファイルも同様なので、これを賢く使用してください。 # # オプション「include」はコマンド「CONFIG REWRITE」によって書き換えられないことに注意してください # 管理者またはRedis Sentinelから取得します。Redisは常に最後に処理された # 行を構成ディレクティブの値として含める場合は、includesを記述したほうがよいでしょう 実行時に構成の変更が上書きされないように、このファイルの先頭に # を追加します。 # # 代わりに、includesを使用して設定を上書きすることに興味がある場合は # オプションを使用する場合は、最後の行として include を使用することをお勧めします。 # # /path/to/local.conf を含める # /path/to/other.conf を含める ####################################### ネットワーク ########################################### # デフォルトでは、「bind」設定ディレクティブが指定されていない場合、Redisは # サーバー上で利用可能なすべてのネットワーク インターフェイスからの接続用。 # 選択した1つまたは複数のインターフェースを聴くことができます。 # 「bind」構成ディレクティブの後に 1 つ以上の IP アドレスが続きます。 # # 例: # # 192.168.1.100 10.0.0.1 をバインドする # 127.0.0.1 ::1 をバインドします # # ~~~ 警告 ~~~ Redisを実行しているコンピュータが # インターネットでは、すべてのインターフェースにバインドすることは危険であり、 # インスタンスをインターネット上の全員に公開します。デフォルトでは、 # 次のbindディレクティブにより、Redisは # IPv4ルックバックインターフェースアドレス(これによりRedisは # 同じコンピュータで実行されているクライアントからの接続のみを受け入れる # は実行中です。 # # インスタンスがすべてのインターフェースをリッスンするようにしたい場合は # 次の行をコメントするだけです。 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 127.0.0.1 をバインド # 保護モードは、次のようなことを避けるためのセキュリティ保護レイヤーです。 # インターネット上に開いたままになっている Redis インスタンスはアクセスされ、悪用されます。 # # 保護モードがオンの場合: # # 1) サーバーは、 # 「bind」ディレクティブ。 # 2) パスワードが設定されていません。 # # サーバーは、 # IPv4およびIPv6ループバックアドレス127.0.0.1および::1、およびUnixドメインから # ソケット。 # # デフォルトでは保護モードが有効になっています。 # 他のホストのクライアントがRedisに接続できるようにしたい場合 # 認証が設定されていない場合や、特定のインターフェースセットが設定されていない場合でも # は「bind」ディレクティブを使用して明示的にリストされます。 保護モード はい # 指定されたポートで接続を受け入れます。デフォルトは 6379 (IANA #815344) です。 # ポート 0 が指定された場合、Redis は TCP ソケットをリッスンしません。 ポート 6379 # TCP listen() バックログ。 # # 1秒あたりのリクエスト数が多い環境では、バックログを多く確保する必要があります。 # クライアントの接続が遅いという問題を回避するために。Linuxカーネルは # はそれを/proc/sys/net/core/somaxconnの値に暗黙的に切り捨てるので、 # somaxconn と tcp_max_syn_backlog の両方の値を上げるようにしてください # 望ましい効果を得るために。 TCPバックログ511 # Unix ソケット。 # # 待ち受けに使用するUnixソケットのパスを指定します # 着信接続。デフォルトはないので、Redisはリッスンしません # 指定されていない場合は Unix ソケット上になります。 # # unixsocket /tmp/redis.sock # unixsocketperm 700 # クライアントが N 秒間アイドル状態になった後に接続を閉じる (無効にするには 0) タイムアウト 0 # TCP キープアライブ。 # # ゼロ以外の場合、SO_KEEPALIVEを使用して、不在時にクライアントにTCP ACKを送信します 通信回数。これは次の 2 つの理由で役立ちます。 # # 1) デッドピアを検出します。 # 2) ネットワークの観点から接続を維持する # 真ん中に装備。 # # Linux では、指定された値 (秒単位) は ACK を送信するために使用される期間です。 # 接続を閉じるには 2 倍の時間が必要であることに注意してください。 # 他のカーネルでは、期間はカーネル構成によって異なります。 # # このオプションの適切な値は300秒で、これは新しい # Redis 3.2.1 以降の Redis のデフォルト。 TCP キープアライブ 300 ################################## 一般的な ####################################### # デフォルトでは、Redis はデーモンとして実行されません。必要な場合は「yes」を使用してください。 # Redis はデーモン化されると /var/run/redis.pid に pid ファイルを書き込むことに注意してください。 悪魔化する # Redisをupstartまたはsystemdから実行すると、Redisは # 監視ツリー。オプション: # 監督なし - 監督なしのやり取り # 監視付き起動 - Redis を SIGSTOP モードにして起動を通知します # 監視対象 systemd - $NOTIFY_SOCKET に READY=1 を書き込んで systemd にシグナルを送る # 監視付き自動検出 - upstartまたはsystemdメソッドに基づいて # UPSTART_JOB または NOTIFY_SOCKET 環境変数 # 注意: これらの監視方法は、「プロセスの準備ができました」という信号のみを送信します。 # スーパーバイザーへの継続的なライブネス ping は有効になりません。 監督なし # pidファイルが指定されている場合、Redisは起動時に指定された場所にそれを書き込みます # 終了時に削除します。 # # サーバーがデーモン化されていない状態で実行されている場合、pidファイルは作成されません。 # 設定で指定されます。サーバーがデーモン化されている場合、pidファイルは # は指定されていない場合でも使用され、デフォルトは "/var/run/redis.pid" になります。 # # pidファイルを作成するのがベストエフォートです。Redisがそれを作成できない場合は # 何も悪いことは起こらず、サーバーは正常に起動して実行されます。 pidファイル /var/run/redis_6379.pid # サーバーの詳細レベルを指定します。 # 次のいずれかになります: # デバッグ (開発/テストに役立つ多くの情報) # 詳細 (めったに役に立たない情報が多いが、デバッグ レベルのような混乱はない) # 通知 (適度に冗長、おそらく本番環境で必要な内容) # 警告 (非常に重要/重大なメッセージのみが記録されます) ログレベル通知 # ログファイル名を指定します。また、空の文字列を使用して強制的に # Redisは標準出力にログを記録します。標準出力を使用する場合は、 # ログ出力ですがデーモン化されており、ログは /dev/null に送信されます ログファイル "" # システムロガーへのログ記録を有効にするには、「syslog-enabled」をyesに設定するだけです。 # 必要に応じて、他の syslog パラメータを更新します。 # syslog 有効 いいえ # syslog ID を指定します。 # syslog-ident redis # syslog 機能を指定します。USER または LOCAL0 ~ LOCAL7 の範囲で指定する必要があります。 # syslog 機能 local0 # データベースの数を設定します。デフォルトのデータベースはDB 0ですが、 # SELECT <dbid>を使用して接続ごとに異なるものを選択します。 # dbid は 0 から 'databases'-1 までの数字です データベース 16 ################################### スナップショット #################################### # # DB をディスクに保存します: # # <秒数> <変更内容> を保存 # # 指定された秒数と指定された時間の両方が経過した場合、DBを保存します。 # DB に対して書き込み操作が何回発生しました。 # # 以下の例では、動作は保存されます: # 少なくとも 1 つのキーが変更された場合、900 秒 (15 分) 後 # 300秒(5分)後、少なくとも10個のキーが変更された場合 # 60秒後に少なくとも10000個のキーが変更された場合 # # 注意: すべての「save」行をコメントアウトすることで、保存を完全に無効にすることができます。 # # 以前に設定した保存をすべて削除することもできます # 空の文字列引数を 1 つ持つ save ディレクティブを追加することでポイントを獲得 # 次の例のように: # # 保存 "" 900 1 を節約 300 10 を節約 60 10000を節約 # デフォルトでは、RDBスナップショットが有効になっている場合、Redisは書き込みの受け入れを停止します # (少なくとも 1 つのセーブ ポイント) と最新のバックグラウンド セーブが失敗しました。 # これにより、ユーザーはデータが永続化されていないことを(厳しい方法で)認識することになります # ディスクに正しく保存しないと、誰も気づかず、 # 災害は起こるでしょう。 # # バックグラウンド保存プロセスが再び機能し始めると、Redisは # 再度書き込みを自動的に許可します。 # # ただし、Redisサーバーの適切な監視を設定している場合は # 永続性が必要な場合は、この機能を無効にして、Redisが # ディスクに問題があっても通常通り動作を続けます。 # 権限など。 stop-writes-on-bgsave-error はい # .rdb データベースをダンプするときに LZF を使用して文字列オブジェクトを圧縮しますか? # デフォルトでは、ほとんどの場合に有効なので「はい」に設定されています。 # 保存中の子プロセスでCPUを節約したい場合は「no」に設定してください。 # 圧縮可能な値やキーがある場合、データセットは大きくなる可能性があります。 rdb圧縮はい # RDB バージョン 5 以降では、CRC64 チェックサムがファイルの末尾に配置されます。 # これにより、フォーマットは破損に対してより耐性を持つようになりますが、パフォーマンスが低下します # RDBファイルの保存と読み込み時にコストがかかる(約10%)ため、無効にすることができます # 最高のパフォーマンスを実現します。 # # チェックサムを無効にして作成されたRDBファイルのチェックサムは0となり、 # ロードコードにチェックをスキップするように指示します。 rdbchecksum はい # DBをダンプするファイル名 dbファイル名 dump.rdb # 作業ディレクトリ。 # # DBはこのディレクトリ内に、指定されたファイル名で書き込まれます # 上記の 'dbfilename' 構成ディレクティブを使用します。 # # 追加専用ファイルもこのディレクトリ内に作成されます。 # # ここではファイル名ではなくディレクトリを指定する必要があることに注意してください。 監督/ ##################################### レプリケーション ####################################### # マスタースレーブレプリケーション。slaveofを使用してRedisインスタンスをコピーします。 # 別の Redis サーバー。Redis レプリケーションについて、すぐに理解しておくべきことがいくつかあります。 # # 1) Redisのレプリケーションは非同期ですが、マスターを設定することで # 少なくとも接続されていないと思われる場合は書き込みの受け入れを停止します # 指定された数のスレーブ。 # 2) Redisスレーブは、 # マスターは、比較的短い時間の間レプリケーションリンクが失われた場合、 # 時間。レプリケーションバックログサイズを設定することもできます(次の # 必要に応じて、このファイルのセクションに適切な値を設定します。 # 3) レプリケーションは自動的に行われ、ユーザーの介入は必要ありません。 # ネットワーク パーティション スレーブは自動的にマスターに再接続しようとします # それらと再同期します。 # # スレーブ <マスターIP> <マスターポート> # マスターがパスワード保護されている場合(「requirepass」設定を使用) # 以下のディレクティブを使用すると、スレーブに認証する前に # レプリケーション同期プロセスを開始します。そうでない場合は、マスターが # スレーブ要求を拒否します。 # # masterauth <マスターパスワード> # スレーブがマスターとの接続を失った場合、またはレプリケーションが # がまだ進行中の場合、スレーブは 2 つの異なる方法で動作できます。 # # 1) slave-serve-stale-dataが「yes」(デフォルト)に設定されている場合、スレーブは # クライアントのリクエストに応答しますが、データが古い可能性があります。 # これが最初の同期である場合、データ セットは空になることがあります。 # # 2) スレーブサーブステイルデータが「no」に設定されている場合、スレーブは次のように応答します。 # すべての種類のコマンドに対して「マスターとの同期が進行中です」というエラーが発生する # ただし、INFO と SLAVEOF に適用されます。 # スレーブサーブ古いデータ はい # スレーブインスタンスが書き込みを受け入れるかどうかを設定できます。 # スレーブインスタンスは一時的なデータを保存するのに便利です(データ # スレーブに書き込まれたデータは、マスターとの再同期後に簡単に削除されますが、 # クライアントが書き込みをする際にも問題が発生する場合があります。 # 設定ミス。 # # Redis 2.6 以降では、スレーブはデフォルトで読み取り専用になります。 # # 注意: 読み取り専用スレーブは信頼できないクライアントに公開されるようには設計されていません # インターネット上では、インスタンスの不正使用に対する保護レイヤーにすぎません。 # 読み取り専用スレーブはデフォルトですべての管理コマンドをエクスポートします # CONFIG、DEBUGなど。限られた範囲で改善できます # 読み取り専用スレーブのセキュリティを「rename-command」を使用してシャドウイングする # 管理上/危険なコマンド。 スレーブ読み取り専用 はい # レプリケーション SYNC 戦略: ディスクまたはソケット。 # # ------------------------------------------------------- # 警告: ディスクレスレプリケーションは現在実験段階です # ------------------------------------------------------- # # レプリケーションを続行できない新しいスレーブと再接続スレーブ # 差分を受け取るだけのプロセスでは、「完全な # 同期"。RDB ファイルがマスターからスレーブに送信されます。 # 送信は 2 つの異なる方法で行われます。 # # 1) ディスクバックアップ: RedisマスターはRDBに書き込む新しいプロセスを作成します # ディスク上のファイル。その後、ファイルは親によって転送されます # スレーブに段階的にプロセスを実行します。 # 2) ディスクレス: Redisマスターは、新しいプロセスを作成し、 # ディスクにまったく触れずに、RDB ファイルをスレーブ ソケットに転送します。 # # ディスクバックアップレプリケーションでは、RDBファイルが生成されている間に、スレーブがさらに # 現在の子プロセスが生成するとすぐに、キューに入れられ、RDBファイルとともに提供される。 # RDBファイルは作業を終了します。ディスクレスレプリケーションでは、 # 転送が開始されると、到着した新しいスレーブがキューに入れられ、新しい転送が開始されます # 現在のものが終了すると開始されます。 # # ディスクレスレプリケーションが使用される場合、マスターは設定可能な時間だけ待機します。 # 複数のスレーブが転送を開始するまでの時間(秒) # が到着し、転送を並列化できます。 # # 低速ディスクと高速(広帯域)ネットワークでは、ディスクレスレプリケーション # の方がうまく機能します。 repl-ディスクレス同期なし # ディスクレスレプリケーションが有効な場合、遅延を設定することができます # サーバーは、ソケット経由で RDB を転送する子プロセスを生成するために待機します。 # 奴隷たちに。 # # 転送が開始されると、配信できなくなるため、これは重要です。 # 新しいスレーブが到着し、次のRDB転送のためにキューに入れられるので、サーバーは # より多くのスレーブが到着するまで遅延を待機します。 # # 遅延は秒単位で指定され、デフォルトでは5秒です。無効にするには # 0 秒に設定するだけで、転送はすぐに開始されます。 repl-ディスクレス同期遅延 5 # スレーブは事前に定義された間隔でサーバーにPINGを送信します。変更可能です # この間隔は repl_ping_slave_period オプションで設定できます。デフォルト値は 10 です。 # 秒。 # # repl-ping-スレーブ期間 10 # 次のオプションは、レプリケーションのタイムアウトを設定します。 # # 1) スレーブの観点から見た、SYNC 中のバルク転送 I/O。 # 2) スレーブの観点から見たマスターのタイムアウト (データ、ping)。 # 3) マスターの観点から見たスレーブのタイムアウト (REPLCONF ACK ping)。 # # この値が値より大きいことを確認することが重要です # repl-ping-slave-period に指定されていない場合はタイムアウトが検出されます # マスターとスレーブ間のトラフィックが少ないとき。 # # 再実行タイムアウト 60 # SYNC 後にスレーブ ソケットで TCP_NODELAY を無効にします? # # 「はい」を選択した場合、Redisはより少ない数のTCPパケットを使用し、 # スレーブにデータを送信するための帯域幅が少なくなります。ただし、これにより遅延が発生する可能性があります。 # スレーブ側に表示されるデータ、最大40ミリ秒 # デフォルト設定を使用する Linux カーネル。 # # 「いいえ」を選択した場合、スレーブ側でデータが表示されるまでの遅延は # 削減されますが、レプリケーションに使用される帯域幅は増加します。 # # デフォルトでは低レイテンシに最適化されていますが、非常に高いトラフィック状況では # またはマスターとスレーブが多くのホップ離れている場合、これを「はい」にすると # 良いアイデアです。 repl-disable-tcp-nodelay なし # レプリケーションバックログのサイズを設定します。バックログは蓄積されるバッファです。 # スレーブがしばらく切断されたときにスレーブデータを保存するので、スレーブが # 再度接続したい場合、完全な再同期は必要ないことが多いですが、部分的な再同期は必要です。 # 再同期は十分です。スレーブが同期中に逃したデータの一部を渡すだけです。 # 切断されました。 # # レプリケーションバックログが大きいほど、スレーブが # 切断され、後で部分的な再同期を実行できるようになります。 # # バックログは、少なくとも 1 つのスレーブが接続された場合にのみ割り当てられます。 # # repl-バックログサイズ 1mb # マスターがスレーブをしばらく接続しなくなった後、バックログ # 解放される秒数を設定します。次のオプションは # 最後のスレーブが切断された時点から経過する必要がある。 # 解放するバックログ バッファ。 # # 値が 0 の場合、バックログは解放されません。 # # レプリケーションバックログTTL 3600 # スレーブの優先度は、Redis によって INFO 出力で公開される整数です。 # Redis Sentinelによって、昇格するスレーブを選択するために使用されます。 # マスターが正しく動作しなくなった場合、マスター。 # # 優先度番号が低いスレーブは昇格に適していると考えられるため、 # 例えば、優先度10、100、25のスレーブが3台ある場合、Sentinelは # 優先度が最も低い 10 のものを選択します。 # # ただし、特別な優先度0はスレーブが実行できないことを示します。 # マスターの役割なので、優先度0のスレーブは選択されません # プロモーション用の Redis Sentinel。 # # デフォルトでは優先度は 100 です。 スレーブ優先度 100 # マスターが書き込みの受け入れを停止する可能性があるのは、 # N 個のスレーブが接続されており、遅延は M 秒以下です。 # # N 個のスレーブは「オンライン」状態である必要があります。 # # 指定された値以下である必要がある秒単位の遅延は、次のように計算されます。 # スレーブから受信した最後の ping。通常は 1 秒ごとに送信されます。 # # このオプションはN個のレプリカが書き込みを受け入れることを保証するものではありませんが、 # スレーブが足りない場合に書き込み損失が発生する可能性を制限します # は指定された秒数まで利用可能です。 # # たとえば、ラグが 10 秒以下のスレーブを少なくとも 3 つ必要とするには、次のようにします。 # # 書き込み可能なスレーブの最小数 3 # 最小スレーブ最大ラグ 10 # # いずれか一方を 0 に設定すると、機能が無効になります。 # # デフォルトでは、min-slaves-to-writeは0(機能は無効)に設定されており、 # min-slaves-max-lag は 10 に設定されています。 ##################################### 安全 ################################### # 他の処理を実行する前にクライアントにAUTH <PASSWORD>の発行を要求する # コマンド。これは、信頼できない環境で役立つかもしれません # redis-server を実行しているホストへのアクセス権を持つ他のユーザー。 # # これは下位互換性のためコメントアウトしたままにしておくべきであり、ほとんどの # 認証を必要としない人 (たとえば、独自のサーバーを実行している人)。 # # 警告: Redisは非常に高速なので、外部のユーザーは最大 # 良いマシンに対して1秒あたり15万のパスワード。つまり、 # 非常に強力なパスワードを使用してください。そうしないと、簡単に破られてしまいます。 # 要求パス myRedis # コマンドの名前変更。 # # 共有ディレクトリ内の危険なコマンドの名前を変更することができます # 環境。例えば、CONFIGコマンドは、 # 推測しにくいので、社内ツールでも利用可能 # ただし、一般クライアントでは利用できません。 # # 例: # # 名前変更コマンド CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # # コマンド名を次のように変更することで、コマンドを完全に終了させることもできます。 # 空の文字列: # # 名前変更コマンド CONFIG "" # # ログインするコマンドの名前を変更すると、 # AOF ファイルまたはスレーブへの送信により問題が発生する可能性があります。 ####################################### 制限 ######################################### # 同時に接続できるクライアントの最大数を設定します。デフォルトでは # この制限は10000クライアントに設定されていますが、Redisサーバーが # プロセスファイルの制限を、指定された制限を許可するように設定できます # 許可されるクライアントの最大数は現在のファイル制限に設定されます # マイナス 32 (Redis は内部使用のためにいくつかのファイル記述子を予約しているため)。 # # 制限に達すると、Redisは送信するすべての新しい接続を閉じます # エラー「クライアントの最大数に達しました」。 # # 最大クライアント数 10000 # 指定されたバイト数を超えるメモリを使用しないでください。 # メモリ制限に達すると、Redisはキーを削除しようとします # 選択された削除ポリシーに従って実行されます (maxmemory-policy を参照)。 # # Redisがポリシーに従ってキーを削除できない場合、またはポリシーが # 'noeviction'に設定すると、Redisはコマンドに対してエラーを返答し始めます # SET、LPUSHなど、より多くのメモリを使用するものがあり、 # GET などの読み取り専用コマンドに応答します。 # # このオプションは通常、RedisをLRUキャッシュとして使用する場合や、 # インスタンスのハードメモリ制限(「noeviction」ポリシーを使用)。 # # 警告: maxmemory がオンのインスタンスにスレーブが接続されている場合、 # スレーブに供給するために必要な出力バッファのサイズが減算されます # 使用メモリ数から、ネットワークの問題や再同期が # キーが削除されるループをトリガーせず、出力が # スレーブのバッファが、削除をトリガーするキーの DEL でいっぱいです データベースが完全に空になるまで、さらにキーを追加します。 # # 要するに...スレーブが接続されている場合は、より低い値を設定することを推奨します # スレーブ用にシステムに空きRAMが確保されるようにmaxmemoryを制限します # 出力バッファ(ただし、ポリシーが 'noeviction' の場合は必要ありません)。 # # 最大メモリ <バイト> # MAXMEMORYポリシー: Redisがmaxmemory時に削除するものを選択する方法 # に到達しました。次の 5 つの動作から選択できます。 # # volatile-lru -> LRUアルゴリズムを使用して有効期限が設定されたキーを削除します # allkeys-lru -> LRUアルゴリズムに従って任意のキーを削除します # volatile-random -> 有効期限が設定されたランダムキーを削除します # allkeys-random -> ランダムキー(任意のキー)を削除します # volatile-ttl -> 有効期限が最も近いキーを削除します (マイナー TTL) # noeviction -> 期限切れにならず、書き込み操作時にエラーを返すだけ # # 注意: 上記のポリシーのいずれの場合も、Redisは書き込み時にエラーを返します。 # 削除するのに適したキーがない場合に、操作を実行します。 # # 執筆時点でのこれらのコマンドは次のとおりです: set setnx setex append # 増分減分rpush lpush rpushx lpushx linsert lset rpoplpush sadd # sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby # zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby # getset mset msetnx exec sort # # デフォルトは次のとおりです: # # 最大メモリポリシー noeviction # LRUと最小TTLアルゴリズムは正確なアルゴリズムではなく近似値です # アルゴリズム(メモリを節約するため)を調整して速度を調整したり、 # 精度。デフォルトではRedisは5つのキーをチェックし、最も正確だったものを選択します。 # 最近あまり使われていないので、次の方法でサンプルサイズを変更できます # 構成ディレクティブ。 # # デフォルトの5で十分な結果が得られます。10で非常に近い値になります # 真の LRU ですが、CPU のコストが少し高くなります。3 は非常に高速ですが、あまり正確ではありません。 # # 最大メモリサンプル数 5 ############################### 追加のみモード ################################# # デフォルトではRedisはデータセットをディスクに非同期でダンプします。このモードは # 多くのアプリケーションでは十分ですが、Redisプロセスまたは # 停電により数分間の書き込みが失われる場合があります( # 設定されたセーブポイント)。 # # 追加専用ファイルは、 # 耐久性が大幅に向上します。たとえば、デフォルトのデータfsyncポリシーを使用すると # (設定ファイルで後述) Redisは1秒間の書き込みで損失する可能性があります。 # サーバーの停電や、何かが起こった場合の1回の書き込みなどの劇的なイベント # Redisプロセス自体に問題が発生するが、オペレーティングシステムは # まだ正常に動作しています。 # # AOF と RDB の永続性は問題なく同時に有効にできます。 # 起動時にAOFが有効になっている場合、RedisはAOFをロードします。これはファイルです # より優れた耐久性を保証します。 # # 詳細については、http://redis.io/topics/persistence を参照してください。 追加のみいいえ # 追加専用ファイルの名前 (デフォルト: "appendonly.aof") 追加ファイル名「appendonly.aof」 # fsync() 呼び出しは、オペレーティングシステムに実際にディスクにデータを書き込むように指示します # 出力バッファにさらにデータが入るのを待つ代わりに、一部のOSでは実際にフラッシュされます。 # ディスク上のデータの場合、他の OS はそれをできるだけ早く実行しようとします。 # # Redis は 3 つの異なるモードをサポートしています。 # # いいえ: fsync は行わず、OS が必要に応じてデータをフラッシュできるようにします。より高速です。 # 常に: 追加専用ログへの書き込みのたびに fsync を実行します。低速ですが、最も安全です。 # everysec: 1 秒ごとに 1 回だけ fsync を実行します。妥協案です。 # # デフォルトは「everysec」です。これは通常、 # スピードとデータの安全性。これを緩和できるかどうかはあなた次第です # 「no」に設定すると、オペレーティングシステムは出力バッファをフラッシュします。 # より良いパフォーマンスのために、それが望むもの(ただし、 # スナップショットのデフォルトの永続モードを考慮すると、多少のデータ損失が発生します) # または逆に、「always」を使うと非常に遅くなりますが、 # 毎秒。 # # 詳細については、次の記事を参照してください。 # http://antirez.com/post/redis-persistence-demystified.html # # 不明な場合は、「everysec」を使用してください。 # 常にappendfsync 毎秒追加同期 # appendfsync なし # AOF fsyncポリシーがalwaysまたはeverysecに設定され、バックグラウンド # 保存プロセス(バックグラウンド保存またはAOFログのバックグラウンド書き換え)は # Linuxの構成によっては、ディスクに対して大量のI/Oを実行する # Redisはfsync()呼び出しで長時間ブロックすることがあります。これに対する修正はありません。 # 現時点では、別のスレッドでfsyncを実行してもブロックされるため、 # 同期write(2)呼び出し。 # # この問題を軽減するために、次のオプションを使用できます # これにより、メインプロセスでfsync()が呼び出されるのを防ぐことができます。 # BGSAVE または BGREWRITEAOF が進行中です。 # # つまり、別の子が保存している間、Redisの耐久性は # 「appendfsync none」と同じです。実際的には、これは # 最悪のシナリオでは、最大30秒のログが失われる可能性があります( # デフォルトの Linux 設定)。 # # 遅延の問題がある場合はこれを「はい」にしてください。それ以外の場合はそのままにしてください # 「いいえ」は耐久性の観点から最も安全な選択です。 書き換え時にfsyncを追加しない # 追加専用ファイルの自動書き換え。 # Redisは暗黙的にログファイルを自動的に書き換えることができます # BGREWRITEAOF AOF ログ サイズが指定されたパーセンテージだけ増加したとき。 # # 仕組みは次の通りです: RedisはAOFファイルのサイズを記憶し、 # 最新の書き換え(再起動後に書き換えが行われていない場合は、 # 起動時のAOFが使用されます。 # # この基本サイズは現在のサイズと比較されます。現在のサイズが # 指定されたパーセンテージより大きい場合、書き換えがトリガーされます。また、 # 書き換えるAOFファイルの最小サイズを指定する必要があります。 # パーセンテージの増加があってもAOFファイルの書き換えを回避するのに役立ちます # に到達しましたが、まだかなり小さいです。 # # 自動AOFを無効にするには、パーセンテージをゼロに指定します # 書き換え機能。 自動 Aof 書き換え率 100 自動 aof 書き換え最小サイズ 64 MB # Redis の実行中に AOF ファイルが末尾で切り捨てられることがあります。 # 起動プロセスで、AOF データがメモリに再度ロードされます。 # これはRedisが稼働しているシステムで発生する可能性があります # クラッシュします。特にext4ファイルシステムが # data=ordered オプション(ただし、Redis 自体が # クラッシュまたは中止しますが、オペレーティング システムは正常に動作します。 # # Redisは、これが発生するとエラーで終了するか、 # 可能な限りデータを取得し(現在のデフォルト)、AOFファイルが見つかった場合は開始します # 末尾が切り捨てられます。次のオプションはこの動作を制御します。 # # aof-load-truncatedがyesに設定されている場合、切り詰められたAOFファイルがロードされ、 # Redis サーバーは、ユーザーにイベントを通知するためにログの出力を開始します。 # それ以外の場合、オプションがnoに設定されている場合、サーバーはエラーで中止します # 起動を拒否します。オプションがnoに設定されている場合、ユーザーは # 再起動する前に「redis-check-aof」ユーティリティを使用してAOFファイルを修正します # サーバー。 # # AOFファイルが途中で破損していることが判明した場合、 # サーバーはエラーで終了します。このオプションは、 # RedisはAOFファイルからさらにデータを読み取ろうとしますが、バイト数が足りません # が見つかります。 aof-load-truncated はい ################################## LUA スクリプト ################################## # Lua スクリプトの最大実行時間(ミリ秒単位)。 # # 最大実行時間に達した場合、Redisはスクリプトが # 最大許容時間経過後もまだ実行中であり、 # エラーのあるクエリに応答します。 # # 長時間実行されるスクリプトが最大実行時間を超えると、 # SCRIPT KILLおよびSHUTDOWN NOSAVEコマンドが利用可能です。最初のコマンドは # 書き込みコマンドをまだ呼び出していないスクリプトを停止するために使用されます。2番目の # 書き込みコマンドが失敗した場合にサーバーをシャットダウンする唯一の方法です # スクリプトによってすでに発行されているが、ユーザーは自然な結果を待ちたくない # スクリプトの終了。 # # 警告なしで無制限に実行するには、0 または負の値に設定します。 lua 時間制限 5000 ################################## REDIS クラスター ################################### # # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # 警告 実験的: Redis Clusterは安定したコードであると考えられていますが、 #それを「成熟」としてマークするには、些細なパーセンテージを待つ必要があります 生産に展開するユーザーの多く。 # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # # 通常のRedisインスタンスはRedis Clusterの一部にはなれません。 # クラスタノードとして起動できます。Redisインスタンスをクラスタノードとして起動するには、 # クラスター ノードでは、次のコメントを解除してクラスター サポートを有効にします。 # #Cluster-Exabledはい # 各クラスタノードにはクラスタ構成ファイルがあります。このファイルは # 手動で編集することを目的としています。Redis ノードによって作成および更新されます。 # Redis Cluster ノードごとに異なるクラスター構成ファイルが必要です。 # 同じシステムで実行されているインスタンスに # クラスター構成ファイル名が重複しています。 # #ClusterConfig-Fileノード-6379.CONF # クラスタノードタイムアウトは、ノードが到達不能になる必要があるミリ秒数です # 失敗状態とみなされます。 # その他のほとんどの内部時間制限は、ノードのタイムアウトの倍数です。 # #クラスターノードタイムアウト15000 #失敗したマスターの奴隷は、そのデータの場合、フェイルオーバーの開始を避けます #古く見えます。 # #奴隷が実際に正確な尺度を持つ簡単な方法はありません #その「データ年齢」なので、次の2つのチェックが実行されます。 # #1)フェールオーバーができる複数の奴隷がいる場合、彼らはメッセージを交換します #最高のもので奴隷に利点を与えようとするために #レプリケーションオフセット(マスタープロセスからのデータの詳細)。 #奴隷はオフセットごとにランクを取得しようとし、スタートに適用しようとします #フェールオーバーのランクに比例した遅延。 # #2)すべての奴隷が最後の相互作用の時間を計算します #そのマスター。 #はまだ「接続された」状態にあります)、またはそれ以来経過した時間 #マスターとの切断(複製リンクが現在ダウンしている場合)。 #最後の相互作用が古すぎる場合、奴隷はフェイルオーバーを試みません #まったく。 # #ポイント「2」はユーザーによって調整できます #フェールオーバーの場合、マスターとの最後の相互作用以来、時間 #ELAPSEDは次のとおりです。 # #(node-timeout *スレーブ有効性ファクター) + REPL-PING-SLAVE-FERIOD # #たとえば、ノードタイムアウトが30秒の場合、スレーブ有効性ファクターの場合 #は10で、10秒のデフォルトのREPL-PING-SLAVE-FERIODを仮定すると、 #スレーブはマスターと話すことができなかった場合、フェイルオーバーを試みません #310秒以上。 # #大規模な奴隷の有効性ファクターは、データがあまりにも古すぎる奴隷を失敗させることができます #マスター、値が小さすぎると、クラスターができるようにすることができない場合があります #奴隷を選出します。 # #最大の可用性のために、奴隷妥当性ファクターを設定することができます #値0に、つまり奴隷が常にフェイルオーバーしようとすることを意味します #最後にマスターとやり取りしたときにマスター。 #(ただし、彼らは常に彼らに比例した遅延を適用しようとします #オフセットランク)。 # #ゼロは、すべてのパーティションが癒されたときに保証できる唯一の値です #クラスターは常に継続することができます。 # #クラスタースレーブ有効性ファクター10 #クラスター奴隷は孤児になったマスターに移住することができます、それはマスターです #奴隷にならないようにしています #孤児のマスターが失敗することはできないように、失敗に抵抗すること #働く奴隷がない場合、失敗の場合。 # #奴隷は、まだ少なくともある場合にのみ、孤児のマスターに移住します #古いマスターの他の作業奴隷の数 #は「移行障壁」です #マスターのために少なくとも1つの他の作業奴隷がいる場合にのみ移行します #などは、あなたが望む奴隷の数を反映しています #クラスターのマスター。 # #デフォルトは1です(奴隷は少なくともマスターが残っている場合にのみ移行します #1つの奴隷)。 #値は設定できますが、デバッグと危険にのみ便利です #制作中。 # #クラスター移行バリア1 #デフォルトでは、Redisクラスターノードがそこに検出された場合、クエリの受け入れを停止します #は、少なくともハッシュスロットが発生しています(利用可能なノードは提供されていません)。 #クラスターが部分的にダウンしている場合(たとえば、ハッシュスロットの範囲があります #はもはやカバーされていません)すべてのクラスターは、最終的には利用できません。 #すべてのスロットが再びカバーされるとすぐに、自動的に利用可能に戻ります。 # #ただし、機能しているクラスターのサブセットが必要な場合があります。 #まだあるキースペースの一部のクエリを受け入れ続けること #それを行うために #NOのオプション。 # #Cluster-Require-Full-Coverageはい #クラスターをセットアップするには、必ずドキュメントを読んでください #http://redis.io Webサイトで入手可能。 ################################## SLOW LOG ################################### #Redisスローログは、指定されたものを超えるログクエリをログにするシステムです #実行時間にはI/O操作が含まれません #クライアントと話す、返信を送信するなど、 #しかし、実際にコマンドを実行するのに必要な時間だけです(これが唯一です #スレッドがブロックされ、提供できないコマンド実行のステージ #その間の他のリクエスト)。 # #2つのパラメーターでスローログを構成できます。1つはRedisを伝えます #マイクロ秒単位での実行時間は、 #ログを取得するコマンド、そして他のパラメーターはの長さです #遅いログが記録されると、最古のコマンドが削除されます #ログコマンドのキュー。 #次の時間はマイクロ秒で表されるため、1000000は同等です #1秒から、負の数は遅いログを無効にすることに注意してください #ゼロの値は、すべてのコマンドのロギングを強制します。 slowlog-log-slower-than-10000 ログが 10000 より遅い #この長さに制限はありません。 #スローログリセットを使用して、スローログで使用されるメモリを回収できます。 スローログ最大長 128 ############################################################################################################################################################################################################################ #Redis Latency Monitoringサブシステムは、異なる操作をサンプリングします #の可能なソースに関連するデータを収集するための実行時に #Redisインスタンスのレイテンシ。 # #レイテンシコマンドを介して、この情報はユーザーが利用できるようにします #グラフを印刷してレポートを取得します。 # #システムは、時間内に実行された操作のみを等しくログにします。 #を介して指定された百万秒より大きい #値が設定されている場合 #ゼロまで、レイテンシモニターがオフになります。 # #デフォルトでは、レイテンシモニタリングはほとんど不要であるため無効になっています #遅延の問題がなく、データの収集にパフォーマンスがある場合 #インパクトは、非常に小さいものの、大きな負荷の下で測定できます #コマンドを使用して、実行時に監視を簡単に有効にすることができます # "必要に応じて、LATENCY-MONITOR-THRESHOLD <MILLISECONDS>を設定します。 レイテンシモニターしきい値 0 ############################# EVENT NOTIFICATION ############################## #Redisは、キースペースで発生しているイベントについてPUB/サブクライアントに通知できます。 #この機能は、http://redis.io/topics/notificationsで文書化されています # #たとえば、キースペースイベント通知が有効になっている場合、クライアント #データベース0、2に保存されているキー「foo」でdel操作を実行します #メッセージはpub/subを介して公開されます: # #公開__keyspace@0 __:foo del #公開__keyevent@0 __:del foo # #Redisがセット間で通知するイベントを選択することは可能です #すべてのクラスは単一の文字で識別されます。 # #kキースペースイベント、__keyspace@<db> __プレフィックスで公開されています。 #e keyeventイベント、__keyevent@<db> __プレフィックスで公開されています。 #g del、expire、name、...などの一般的なコマンド(非タイプ固有)... #$文字列コマンド #lリストコマンド #Sセットコマンド #Hハッシュコマンド #zセットコマンドをソートします #x有効期限切れのイベント(キーが期限切れになるたびに生成されるイベント) #e vevedイベント(Maxmemoryのためにキーが退会されたときに生成されたイベント) #g $ lshzxeのエイリアス。「ake」文字列はすべてのイベントを意味します。 # #「notify-keyspace-events」は、構成された文字列を引数として取ります #ゼロまたは複数の文字列は、その通知を意味します #は無効です。 # #例:リストと一般的なイベントを有効にするには、 #イベント名、使用: # #NOTIFY-KEYSPACE-EVENTS ELG # #例2:期限切れのキーのストリームを取得するには、チャンネルを購読する #名前__keyevent@0 __:期限切れの使用: # #Notify-Keyspace-Events Ex # #デフォルトでは、ほとんどのユーザーが必要ないため、すべての通知が無効になります #この機能には頭上があります #KまたはEの少なくとも1つを指定します。イベントは配信されません。 キースペースイベントを通知する "" ########################################################################################################################################## #ハッシュは、メモリ効率的なデータ構造を使用してエンコードされます。 #少数のエントリ、および最大のエントリは特定のエントリを超えません #しきい値。 ハッシュ最大 ziplist エントリ 512 ハッシュ最大 ziplist 値 64 #リストは、多くのスペースを節約するための特別な方法でエンコードされています。 #内部リストノードごとに許可されるエントリの数を指定できます #固定最大サイズまたは最大数の要素として。 #固定最大サイズの場合は、-5〜 -1を使用します。つまり、次のことを意味します。 #-5:最大サイズ:64 kb < - 通常のワークロードにはお勧めしません #-4:最大サイズ:32 kb < - お勧めしません #-3:最大サイズ:16 kb < - おそらくお勧めしません #-2:最大サイズ:8 kb < - 良い #-1:最大サイズ:4 kb < - 良い #ポジティブ数は_exactly_までのストアを意味しますその数の要素 #リストノードごと。 #最高のパフォーマンスオプションは、通常-2(8 kbサイズ)または-1(4 kbサイズ)です。 #ただし、ユースケースが一意の場合は、必要に応じて設定を調整します。 リストの最大 ziplist サイズ -2 #リストも圧縮される場合があります。 #圧縮深度は、 *の各 *側からのクイックリストziplistノードの数です #プリスから *除外するリスト #速いプッシュ/POP操作の場合は常に非圧縮されています。 #0:すべてのリスト圧縮を無効にします #1:深さ1は、「リストに1つのノードが入るまで圧縮を開始しないでください、 #頭または尾から行く」 #so:[head] - > node-> node-> ...-> node-> [tail] #[ヘッド]、[テール]は常に圧縮されます。 #2:[head] - > [next] - > node-> node-> ...-> node-> [prev] - > [tail] #2ここでの意味:ヘッドまたはヘッドを圧縮しないでください - >次またはテール - > prevまたはtael、 #ただし、それらの間のすべてのノードを圧縮します。 #3:[head] - > [next] - > [next] - > node-> node-> ...-> node-> [prev] - > [tail] #など リスト圧縮深度 0 #セットには、たった1つのケースで特別なエンコードがあります:セットが構成されている場合 #範囲内のラジックス10の整数であるだけの文字列の数 #64ビット署名された整数。 #次の構成設定は、のサイズの制限を設定します #この特別なメモリ保存エンコーディングを使用するために設定します。 最大整数セットエントリ数 512 #ハッシュとリストと同様に、ソートされたセットも特別にエンコードされています #多くのスペースを節約するために #ソートセットの要素は、次の制限を下回っています。 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 #ハイパーログログスパース表現バイト制限 #16バイトヘッダー #この制限、密度表現に変換されます。 # #16000を超える値はまったく役に立たない。その時点で #dense表現は、メモリ効率が高くなります。 # #提案された値は、の利点を持つために〜3000です #PFADDを遅くすることなくスペース効率の良いエンコード、 #o(n)は、値を上げることができます #〜10000 CPUが心配ではないが、スペースはそうであり、データセットは #0〜15000の範囲にカーディナリティを持つ多くのハイパーログログで構成されています。 hll-スパース最大バイト数 3000 #アクティブな再ハッシングでは、1億秒ごとに100万秒を使用します。 #メインのRedisハッシュテーブルの再ハッシュを支援するために注文します(トップレベルのマッピングマッピング #値のキー)。 #怠zyな再ハッシングを実行します:ハッシュテーブルに出くわす操作が多い #それは再ハッシングです、より多くの「ステップ」が実行されるので、 #サーバーがアイドル状態にあることは、再ハッシングが完全ではなく、いくつかのメモリが使用されています #ハッシュテーブルで。 # #デフォルトは、この百万秒を毎秒10回使用することです。 #主要な辞書を積極的に再ハッシュし、可能な場合はメモリを解放します。 # #わからない場合: #ハードレイテンシー要件があり、それが #Redisが時々返信できる環境では良いことではありません #200万秒の遅延があるクエリまで。 # #そのような難しい要件がない場合は、「activerehashing yes」を使用しますが #可能な場合はできるだけ早くメモリを解放したい。 アクティブリハッシュ はい #クライアントの出力バッファー制限を使用して、クライアントの切断を強制することができます #何らかの理由でサーバーからデータを十分に速く読んでいない( #一般的な理由は、パブ/サブクライアントがメッセージを速く消費できないということです。 #出版社はそれらを作成できます)。 # #3つの異なるクラスのクライアントで制限を異なる方法で設定できます。 # #通常 - >モニタークライアントを含む通常のクライアント #スレーブ - >スレーブクライアント #Pubsub->クライアントは、少なくとも1つのPubSubチャンネルまたはパターンに購読しています # #すべてのクライアント出力バッファリミットディレクティブの構文は次のとおりです。 # #client-output-buffer-limit <class> <hard limit> <ソフトリミット> <ソフト秒> # #クライアントは、厳しい制限に達するとすぐに切断されます。 #柔らかい制限に達し、指定された数の場合は到達したままです #秒(継続的に)。 #たとえば、ハードリミットが32メガバイトで、ソフトリミットが #16メガバイト / 10秒、クライアントはすぐに切断されます #出力バッファーのサイズが32メガバイトに達したが、 #クライアントが16メガバイトに達し、継続的に克服した場合に切断 #10秒の制限。 # #デフォルトでは、通常のクライアントはデータを受け取っていないために制限されていません #(プッシュ方法で)を求めずに、しかしリクエストの直後には、 #非同期クライアントは、データがより速く要求されるシナリオを作成する場合があります #読むことができるよりも。 # #代わりに、PubSubとスレーブクライアントにはデフォルトの制限があります。 #購読者と奴隷は、プッシュファッションでデータを受け取ります。 # #ハード制限またはソフト制限の両方をゼロに設定することで無効にすることができます。 クライアント出力バッファ制限 正常 0 0 0 クライアント出力バッファ制限 スレーブ 256MB 64MB 60 クライアント出力バッファ制限 pubsub 32mb 8mb 60 #Redisは内部関数を呼び出して、多くのバックグラウンドタスクを実行します。 #タイムアウトでクライアントの接続を閉じる、有効なキーをパージする #要求されることはありません。 # #すべてのタスクが同じ頻度で実行されるわけではありませんが、Redisチェック #指定された「Hz」値に従って実行するタスク。 # #デフォルトでは「Hz」は10に設定されています。値を上げると、より多くのCPUが使用されます #Redisはアイドル状態ですが、同時にRedisがより応答します #同時に多くのキーが期限切れになっており、タイムアウトは #より正確に処理されます。 # #範囲は1〜500ですが、100を超える値は通常そうではありません #ほとんどのユーザーは10のデフォルトを使用して、これを上げる必要があります #100非常に低いレイテンシが必要な環境でのみ。 10ヘルツ #子供がAOFファイルを書き換えたとき、次のオプションが有効になっている場合 #ファイルは、生成された32 MBごとにFSYNC-EDになります #ファイルをディスクにもっと段階的にコミットし、避けるために #ビッグレイテンシースパイク。 aof-rewrite-incremental-fsync はい c
d dockerコンテナを実行します
E.Configurationは、Redis-Serverへの特定のIPアクセスのみを可能にします 構成ファイルで検索します
部分的に設定されています 上記の記事「DockerはRedisを起動し、パスワードを設定します」は、私があなたと共有するすべてのコンテンツです。 以下もご興味があるかもしれません:
|
最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...
1. TypeScriptの紹介前回の記事ではTypeScriptのインストール、使い方、自動コンパ...
複雑なコンポーネント (クラス コンポーネント) と単純なコンポーネント (関数コンポーネント) を...
目次序文異なるコンピュータ上の 2 つの Node.js プロセス間の通信TCPソケットの使用HTT...
1. MySQLをダウンロードする1.1 ダウンロードアドレスhttps://downloads.m...
基本的な環境設定まずはご自身でドメイン名とサーバーを購入してくださいクラウドサーバーECSに基づいて...
効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...
MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...
1. ポート 80 が占有されているかどうかを確認します。通常、ポート 80 は Apache サー...
1. フォントと文字表示の関係左側と右側の鋭角部分は Songti フォントで表示されます: &l...
コードをコピーコードは次のとおりです。 <div contenteditable="...
購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...
MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...
1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...
目次Linux 環境変数とプロセスアドレス空間コードを通じて環境変数を取得するプロセスアドレス空間な...