JavaWeb日記-共通のRedis構成

4922 ワード

Redisは高速でメモリベースでも持続可能なログ型であり、Key-Valueデータベースは日常の開発においてもよく見られるRedisをうまく使うには、まずredisを構成する必要がある.confは非常に重要であり、同社のredisを見ることもできる.confはこの会社のバックグラウンド人員の技術レベルを判断する.

redis.conf構成項目の説明は以下の通りです。


Redisはデフォルトではデーモンプロセスでは実行されません.この構成項目を変更してyesを使用してデーモンプロセスを有効にすることができます.
  daemonize no

Redisがデーモン方式で実行する場合、Redisはデフォルトでpidを/var/run/redisに書き込む.pidファイル、pidfileで指定できます
  pidfile /var/run/redis.pid

Redisリスニングポートを指定し、デフォルトポートは6379で、著者は自分のブログで6379をデフォルトポートとして選んだ理由を説明した.6379は携帯電話のボタンにMERZ対応の番号があり、MERZはイタリアの歌姫Alessia Merzの名前から取ったからだ.
  port 6379

バインドされたホストアドレス
  bind 127.0.0.1

クライアントがアイドル状態になってから接続をオフにします.0を指定すると、この機能をオフにします.
  timeout 300

ログ・レコード・レベルを指定します.Redisでは、debug、verbose、notice、warningの4つのレベルがサポートされています.デフォルトはverboseです.
  loglevel verbose

ログ記録方式、デフォルトは標準出力で、Redisをデーモン方式で実行するように構成し、ここでログ記録方式を標準出力に構成すると、ログは/dev/nullに送信されます.
  logfile stdout

データベースの数を設定します.デフォルトのデータベースは0です.SELECTコマンドを使用して、接続にデータベースidを指定できます.
  databases 16

どのくらいの時間内に、何回の更新操作があるかを指定して、データをデータファイルに同期して、複数の条件を合わせることができます
  save  
  Redis              :
  save 900 1
  save 300 10
  save 60 10000

それぞれ900秒(15分)に1つの変更があり、300秒(5分)に10つの変更があり、60秒に10000の変更があることを示します.ローカル・データベースに格納するときにデータを圧縮するかどうかを指定します.デフォルトはyesです.RedisはLZF圧縮を採用しています.CPUの時間を節約するためにこのオプションをオフにすることができますが、データベース・ファイルが大きくなります.
  rdbcompression yes

ローカルデータベースのファイル名を指定します.デフォルトはdumpです.rdb
  dbfilename dump.rdb

ローカル・データベースの保存ディレクトリの指定
  dir ./

本機がslavサービスである場合、マスターサービスのIPアドレスとポートを設定し、Redis起動時に自動的にマスターからデータ同期を行う
  slaveof  

マスターサービスがパスワード保護を設定すると、slavサービスはマスターのパスワードに接続されます.
  masterauth 

Redis接続パスワードを設定します.接続パスワードが設定されている場合、クライアントはRedis接続時にAUTHコマンドでパスワードを入力する必要があります.デフォルトでは閉じます.
  requirepass foobared

同じ時間に最大クライアント接続数を設定します.デフォルトでは制限はありません.Redisが同時に開くことができるクライアント接続数は、Redisプロセスが開くことができる最大ファイル記述子数です.maxclients 0を設定すると、制限はありません.クライアント接続数が制限に達すると、Redisは新しい接続を閉じ、max number of clients reachedエラーメッセージをクライアントに返します.
  maxclients 128

Redisの最大メモリ制限を指定します.Redisは起動時にメモリにデータをロードします.最大メモリに達すると、Redisは期限切れまたは期限切れになるKeyをクリアしようとします.このメソッドの処理後も最大メモリ設定に達し、書き込み操作はできませんが、読み取り操作はできます.Redisの新しいvmメカニズムは、Keyをメモリに保存し、Valueはswap領域に保存します.
  maxmemory 

更新操作のたびにログを記録するかどうかを指定します.Redisはデフォルトでは非同期でディスクにデータを書き込みます.オンにしないと、電源が切れたときにしばらくの間データが失われる可能性があります.redis自体の同期データファイルは上記save条件で同期されるため、一定期間メモリにしか存在しないデータもあります.デフォルトはno
  appendonly no

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

更新ログ条件を指定します.3つのオプション値があります.no:オペレーティングシステムがデータキャッシュをディスクに同期することを示します(速い)always:更新操作のたびにfsync()を手動で呼び出してディスクにデータを書き込むことを示します(遅い、安全な)everysec:毎秒同期することを示します(トレードオフ、デフォルト)
  appendfsync everysec

仮想メモリメカニズムを有効にするかどうかを指定します.デフォルト値はnoです.簡単に説明します.VMメカニズムはデータをページングし、Redisによってアクセス量の少ないページであるコールドデータswapをディスクに、アクセスの多いページはディスクによって自動的にメモリにスワップされます(後述ではRedisのVMメカニズムを詳しく分析します).
   vm-enabled no

仮想メモリファイルのパス、デフォルトは/tmp/redisです.swap、複数のRedisインスタンス共有不可
   vm-swap-file /tmp/redis.swap

vm-max-memoryより大きいすべてのデータを仮想メモリに格納します.vm-max-memoryの設定がどんなに小さくても、すべてのインデックスデータはメモリに格納されます(Redisのインデックスデータはkeysです).つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在します.既定値は0
   vm-max-memory 0

Redis swapファイルは多くのpageに分かれており、1つのオブジェクトは複数のpageの上に保存できるが、1つのpageでは複数のオブジェクトに共有されてはいけない.vm-page-sizeは格納されたデータサイズに基づいて設定される.著者らは、多くの小さなオブジェクトを格納する場合、pageサイズは32または64 bytesに設定することを提案する.大きなオブジェクトを格納する場合は、より大きなpageを使用し、不確定な場合はデフォルト値を使用します.
   vm-page-size 32

swapファイルのpage数を設定します.ページテーブル(ページの空きや使用を示すbitmap)がメモリに格納されているため、ディスク上で8つのpagesごとに1 byteのメモリが消費されます.
     vm-pages 134217728

swapファイルにアクセスするスレッド数を設定するには、マシンのコア数を超えないほうがいいです.0に設定すると、swapファイルに対する操作はすべてシリアルで、比較的長い遅延をもたらす可能性があります.既定値は4
   vm-max-threads 4

クライアントに応答するときに、小さなパケットを1つのパケットに統合して送信するかどうかを設定し、デフォルトではオンにします.
  glueoutputbuf yes

一定の数または最大の要素が臨界値を超える場合に、特殊なハッシュアルゴリズムを使用することを指定します.
  hash-max-zipmap-entries 64
  hash-max-zipmap-value 512

リセットハッシュをアクティブ化するかどうかを指定し、デフォルトでオンにします(Redisのハッシュアルゴリズムについては後述します)
  activerehashing yes

同じホスト上の複数のRedisインスタンス間で同じプロファイルを使用しながら、個々のインスタンスが独自の特定のプロファイルを持つ他のプロファイルを含めることを指定します.
  include /path/to/local.conf