Redis共通設定の詳細解説

目次

1. config コマンドを使用して、構成を表示および変更します。

2. redis.conf ファイルを編集して、redis 構成を変更します。

3. redis.confの共通設定項目の説明

Redis 構成ファイルは Redis インストール ディレクトリにあり、ファイル名は redis.conf (Windows 名は redis.windows.conf) です。config コマンドを使用するか、redis.conf ファイルを直接開いて表示または変更できます。


1. config コマンドを使用して、構成を表示および変更します。

  • config ビューのコマンド形式
127.0.0.1:6379> config get config_setting_name
  • 構成を表示する config コマンド
127.0.0.1:6379> config get loglevel
1) "loglevel"
2) "notice"

* を使用してすべての構成を取得します

127.0.0.1:6379> config get *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "cluster-announce-ip"
  8) ""
  9) "unixsocket"
 10) ""
 11) "logfile"
 12) "server_log.txt"
 13) "pidfile"
 14) ""
 15) "slave-announce-ip"
 16) ""
 17) "replica-announce-ip"
 18) ""
 19) "maxmemory"
 20) "104857600"
 21) "proto-max-bulk-len"
 22) "536870912"
 23) "client-query-buffer-limit"
 24) "1073741824"
 25) "maxmemory-samples"
 26) "5"
 27) "lfu-log-factor"
 28) "10"
 29) "lfu-decay-time"
 30) "1"
 31) "timeout"
 32) "0"
 33) "active-defrag-threshold-lower"
 34) "10"
 35) "active-defrag-threshold-upper"
 36) "100"
 37) "active-defrag-ignore-bytes"
 38) "104857600"
 39) "active-defrag-cycle-min"
 40) "5"
 41) "active-defrag-cycle-max"
 42) "75"
 43) "active-defrag-max-scan-fields"
 44) "1000"
 45) "auto-aof-rewrite-percentage"
 46) "100"
 47) "auto-aof-rewrite-min-size"
 48) "67108864"
 49) "hash-max-ziplist-entries"
 50) "512"
 51) "hash-max-ziplist-value"
 52) "64"
 53) "stream-node-max-bytes"
 54) "4096"
 55) "stream-node-max-entries"
 56) "100"
 57) "list-max-ziplist-size"
 58) "-2"
 59) "list-compress-depth"
 60) "0"
 61) "set-max-intset-entries"
 62) "512"
  • config 変更コマンドの割り当て値の構文
127.0.0.1:6379> config set config_setting_name new_config_value
  • config コマンドを使用して構成を変更します
127.0.0.1:6379> config set loglevel notice
OK

2. redis.conf ファイルを編集して、redis 構成を変更します。

エディターは、redis.conf ファイルで変更する必要がある構成の値を開き、保存後に redis を再起動します。

3. redis.confの共通設定項目の説明

# redis がリクエストを受け取る IP アドレスを指定します。設定されていない場合、すべてのリクエストが処理されます
bind 127.0.0.1
 
# 保護モードを有効にするかどうか、デフォルトで有効になっています。構成でバインドとパスワードが指定されていない場合。このパラメーターを有効にすると、redis はローカルにのみアクセスし、外部アクセスを拒否します。パスワードとバインドが有効になっている場合は、有効にすることができます。それ以外の場合は、それを閉じて no に設定することをお勧めします
プロテクト モード yes
 
#redis デフォルト ポート番号
port 6379
 
#このパラメーターは、TCP 接続で (スリーウェイ ハンドシェイクの完了後に) 完了したキューの長さを決定します。この値は、Linux システムの /proc/sys/net/core/somaxconn 値で定義された値より大きくしてはなりません。デフォルトは 511 で、Linux のデフォルト パラメータ値は 128 です。システムに大量の同時実行性があり、クライアントの速度が遅い場合、これら 2 つのパラメーターを参考として一緒に設定できます。通常、このカーネル パラメータのデフォルト値は 128 です。これは、負荷の高いサービス プログラムには十分ではありません。通常は 2048 以上に変更されます。/etc/sysctl.conf: net.core.somaxconn = 2048 に追加し、ターミナルでsysctl -p
tcp-backlog 511
 
を実行します。 0 の場合、サーバーはアクティブに切断されず、
タイムアウト 0
 
#tcp キープアライブ パラメーターを 0 未満にすることはできません。If the setting is not 0, use the SO_KEEPALIVE value of tcp configuration. キープアライブを使用すると、ハングアップしたピアを検出するという 2 つの利点があります。ネットワークが接続されているように見えても、すでにピア ポートに接続されているように見える中間機器障害の問題を軽減します。Linux カーネルでは、キープアライブが設定されている場合、redis は定期的にピアに ack を送信します。ピアがダウンしていることを検出するには、設定値
tcp-keepalive 300の 2 倍が必要です
 
#デーモン スレッドとして実行するかどうか、Redis はデフォルトでキープアライブ スレッドとして実行されません (Windows は no としてデーモン スレッドの構成をサポートしません)

 

#redis がデーモン スレッドとして実行される場合、pid はデフォルトで /var/run/reids.pid ファイルに書き込まれ、pidfile は pidfile
/var/run/redis/redis.pid
 
で指定できます#レベルを指定しますサーバーログの。レベルには、debug、verbose、notice (実稼働環境に適しています)、warn (非常に重要な情報のみ)、デフォルトは notice が含まれます
loglevel notice
 
#Logging メソッド、デフォルトの標準出力、文字列が空の場合、ログは標準出力デバイス。バックグラウンドで動作しているredisの標準出力は /dev/null
logfile ""
 
 
#syslogの記録機能を有効にするかどうか
# syslog-enabled no
 
#syslogの識別子。
# syslog-ident redis
 
# ログ ソース、機器
# syslog-facility local0
 
# データベースの数、デフォルト データベースは 0 です。「SELECT [データベース シリアル番号]」コマンドを使用して、データベース ID
データベースを指定できます。 データベース 16

 #RDB コア ルールの構成 データをデータ ファイルに同期する期間と更新操作の回数を指定し、複数の条件を一致させることができます。公式の工場設定では、デフォルトで 900 秒以内に 1 回、300 秒以内に 10 回、60 秒以内に 10,000 回の変更が行われ、メモリ内のデータ スナップショットがディスクに書き込まれます。
RDB スキームを使用したくない場合は、save ""
#save <seconds> <changes>
# save ""のコメントを開くことができます。

保存 300 10
保存 60 10000



#RDB 永続性エラー発生時、継続動作可否、yes:動作不可、no:継続可能、info stop-writes-on- bgsaveの rdb_last_bgsave_status で RDB 永続性異常の有無を知ることができる- error yes
 
#ローカル データベースに保存するときにデータを圧縮するかどうかを設定します。デフォルトは yes です。Redis は LZF 圧縮を使用しますが、CPU 時間を少し消費します。このオプションをオフにすると、データベース ファイルが巨大になります。有効にすることをお勧めします。
rdbcompression yes
 
#rdb ファイルを検証するかどうか; rdb 形式の第 5 バージョンから、CRC64 チェックサムが rdb ファイルの最後に追加されます。これはファイルのフォールト トレランスには有利ですが、rdb ファイルを保存すると 10% 程度のパフォーマンスが低下するため、高パフォーマンスを追求する場合は、この構成をオフにできます。 rdbchecksum yes #ローカル データベース ファイル名を指定し、通常、デフォルトの dump.rdb dbfilename dump.rdb #Data ディレクトリを使用します

 
データベース

 
このディレクトリに書き込まれます。rdb および aof ファイルもこのディレクトリに書き込まれます
dir ./

#コピーオプション、スレーブは対応するマスターをコピーします。
# replicaof <masterip> <masterport>
 
# マスターが requirepass を設定している場合、スレーブはマスターに接続するためにマスターのパスワードを持っている必要があります。masterauth は、マスターへの接続後に認証を実行できるように、マスターのパスワードを構成するために使用されます。
# masterauth <マスターパスワード>

 
# スレーブ ライブラリがホストとの接続を失った場合、またはレプリケーションが進行中の場合、スレーブ ライブラリには 2 つの動作モードがあります: 1) slave-serve-stale-data が yes (デフォルト設定) に設定されている場合、スレーブ ライブラリは引き続き応答しますクライアントの要求に。2) slave-serve-stale-data が no に設定されている場合、
INFO、replicaOF、AUTH、PING、SHUTDOWN、REPLCONF、ROLE、CONFIG、SUBSCRIBE、UNSUBSCRIBE、PSUBSCRIBE、
PUNSUBSCRIBE、PUBLISH、PUBSUB、COMMAND、POST、HOST: およびLATENCY コマンド以外の要求は、
「進行中のマスターとの同期」というエラーを返します。
replica-serve-stale-data yes
 
# スレーブ サーバーとして、デフォルトで読み取り専用 (yes) であり、書き込みの場合は NO に変更できます (非推奨)
#replica-read-only yes
 
# ソケット モードを使用するかどうかデータをコピーします。現在、redis レプリケーションには、ディスクとソケットの 2 つの方法があります。新しいスレーブが接続された場合、または再接続されたスレーブが部分的に同期できない場合、完全な同期が実行され、マスターはrdbファイルを生成します。2 つの方法があります。ディスクの方法は、マスターが
新しいプロセスを作成して rdb ファイルをディスクに保存し、ディスク上の rdb ファイルをスレーブに渡します。ソケットは、マスターによって作成された新しいプロセスであり
、rdb ファイルをソケットの形式でスレーブに直接送信します。ディスク モードでは、rdb が保存されている場合、複数のスレーブが
このrdbファイルを共有してください。ソケットの方法は、スレーブを 1 つずつ順番にコピーすることです。ディスク速度が遅く、ネットワーク速度が速い場合は、ソケット方式をお勧めします。
repl-diskless-sync いいえ

#slave は、指定された時間間隔に従ってサーバーに ping 要求を送信します。時間間隔は repl_ping_slave_period で設定できます。デフォルトは 10 秒です。
# repl-ping-slave-period 10
 
# ディスクレス レプリケーションの遅延時間、0 に設定できないようにします。レプリケーションが開始されると、ノードは次のrdb転送まで新しいスレーブからのレプリケーション要求を受信しません。
そのため、しばらく待って、さらにスレーブが接続されるのを待つことをお勧めします.
repl-diskless-sync-delay 5
 

 
# レプリケーション接続のタイムアウト。マスターとスレーブの両方にタイムアウト設定があります。マスターは、スレーブの最後の送信時間が repl-timeout を超えたことを検出します。つまり、スレーブはオフラインと見なされ、スレーブ情報はクリアされます。スレーブは、最後にマスターとやり取りした時間が repl-timeout を超えたことを検出すると、マスターがオフラインであると見なします。repl-timeout は repl-ping-slave-period よりも大きな値に設定する必要があることに注意してください。そうしないと、タイムアウトを検出することがよくあります
# repl-timeout 60
 
 
#tcp リンクの tcp nodelay パラメータのコピーを禁止するかどうか、 yes または no を渡すことができます。デフォルトは no です。つまり、tcp nodelay を使用します。
マスターが tcp nodelay 設定を無効にするために yes を設定すると、データをスレーブにコピーするときに、パケット数が減少し、ネットワーク帯域幅が小さくなります
ただし、これによりデータの遅延が発生することもあります。デフォルトでは遅延を小さくすることをお勧めしますが、大量のデータ転送の場合は yes を選択することをお勧めします
repl-disable-tcp-nodelay no
 
#レプリケーション バッファ サイズ。最新の複製オーダー。このように、スレーブがオフラインの場合、完了する必要はありません
マスターのデータを完全に複製するには、部分的な同期が可能であれば、バッファ内のデータの一部をスレーブにコピーするだけで、通常の複製状態に戻すことができます
バッファのサイズが大きいほど、スレーブがオフラインになる時間が長くなり、レプリケーション バッファはスレーブ接続がある場合にのみメモリを割り当てます。
一定期間スレーブが存在しない場合、メモリが解放されます。デフォルトは 1m
# repl-backlog-size 1mb
 
# 一定期間スレーブが存在しない場合、マスターはコピー バッファのメモリを解放します。 repl-backlog-ttl は、時間の長さを設定するために使用されます。単位は秒です。
# repl-backlog-ttl 3600
 
# マスターが使用できない場合、Sentinel はスレーブの優先度に従ってマスターを選出します。優先順位が最も低いスレーブがマスターとして選出されます。
If it is configured as 0, it will never be selected.
replica-priority 100
 
#redis provides a way for the master to stop writing. min-replicas-to-write が設定されている場合、正常なスレーブの数は N 未満です。そして、物質はそれが書くことを禁じます。マスターには、書き込みコマンドを実行するために、少なくとも何台の正常なスレーブが残っている必要があります。この構成は、N 個のスレーブすべてがマスターの書き込み操作を受信できることを保証することはできませんが、十分な数の正常なスレーブが存在しない場合にデータ損失を回避するために、マスターが書き込みを行わないようにすることができます。0 に設定すると、この機能がオフになります
# min-replicas-to-write 3
 
# 遅延が min-replicas-max-lag 秒未満のスレーブは正常なスレーブと見なされます
# min-replicas-max-lag 10
 
#この機能を無効にするには、1 または別の 0 に設定します。
# どちらか一方を 0 に設定すると、機能が無効になります。
# デフォルトでは、min-replicas-to-write は 0 (機能が無効) に設定され、
# min-replicas-max-lag は 10 に設定されています。

# redis に接続できるクライアント接続の最大数を設定します。デフォルトは 10000 クライアント接続です。redis は、接続がクライアント接続なのか、内部で開いているファイルなのか、スレーブとの接続なのかを区別しないため、maxclients の最小推奨設定は 32 です。maxclients を超えた場合、redis は「到達したクライアントの最大数」を新しい接続に送信し、接続を閉じます
# maxclients 10000

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

# maxmemory <バイト>

各更新操作の後にログ レコードを実行するかどうかを指定します. デフォルトでは、Redis は非同期的にディスクにデータを書き込みます. 有効にされていない場合, 電源がオフになると一定期間データが失われる可能性があります. redis 自体が上記の保存条件に従ってデータ ファイルを同期するため、一部のデータはメモリ内に一定期間しか存在しません。デフォルトは「いいえ」です

追加のみいいえ

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

appendfilename "appendonly.aof"

更新ログの条件を指定します。オプションの値は 3 つあります。

  • no : オペレーティング システムがデータ キャッシュをディスクに同期するのを待機していることを示します (高速)。
  • always : 各更新操作の後に fsync() が手動で呼び出され、データがディスクに書き込まれることを示します (低速、安全)
  • everysec : 1 秒ごとの同期を示します (妥協、デフォルト値)

appendfsync everysec

仮想メモリ メカニズムを有効にするかどうかを指定します. デフォルト値は no です. 簡単に言うと, VM メカニズムはデータをページに保存し, Redis はディスクへのアクセスが少ないページ (コールド データ) をスワップし, アクセスが多いページをスワップします.アクセスはディスクによって自動的にスワップアウトされます。

vm 対応のいいえ

詳細については、redis 構成ファイルの一般的な構成の詳細な説明を参照してください。

おすすめ

転載: blog.csdn.net/qq_56044050/article/details/123755008