JavaWeb日記-共通のRedis構成
4922 ワード
Redisは高速でメモリベースでも持続可能なログ型であり、Key-Valueデータベースは日常の開発においてもよく見られるRedisをうまく使うには、まずredisを構成する必要がある.confは非常に重要であり、同社のredisを見ることもできる.confはこの会社のバックグラウンド人員の技術レベルを判断する.
Redisはデフォルトではデーモンプロセスでは実行されません.この構成項目を変更してyesを使用してデーモンプロセスを有効にすることができます.
Redisがデーモン方式で実行する場合、Redisはデフォルトでpidを/var/run/redisに書き込む.pidファイル、pidfileで指定できます
Redisリスニングポートを指定し、デフォルトポートは6379で、著者は自分のブログで6379をデフォルトポートとして選んだ理由を説明した.6379は携帯電話のボタンにMERZ対応の番号があり、MERZはイタリアの歌姫Alessia Merzの名前から取ったからだ.
バインドされたホストアドレス
クライアントがアイドル状態になってから接続をオフにします.0を指定すると、この機能をオフにします.
ログ・レコード・レベルを指定します.Redisでは、debug、verbose、notice、warningの4つのレベルがサポートされています.デフォルトはverboseです.
ログ記録方式、デフォルトは標準出力で、Redisをデーモン方式で実行するように構成し、ここでログ記録方式を標準出力に構成すると、ログは/dev/nullに送信されます.
データベースの数を設定します.デフォルトのデータベースは0です.SELECTコマンドを使用して、接続にデータベースidを指定できます.
どのくらいの時間内に、何回の更新操作があるかを指定して、データをデータファイルに同期して、複数の条件を合わせることができます
それぞれ900秒(15分)に1つの変更があり、300秒(5分)に10つの変更があり、60秒に10000の変更があることを示します.ローカル・データベースに格納するときにデータを圧縮するかどうかを指定します.デフォルトはyesです.RedisはLZF圧縮を採用しています.CPUの時間を節約するためにこのオプションをオフにすることができますが、データベース・ファイルが大きくなります.
ローカルデータベースのファイル名を指定します.デフォルトはdumpです.rdb
ローカル・データベースの保存ディレクトリの指定
本機がslavサービスである場合、マスターサービスのIPアドレスとポートを設定し、Redis起動時に自動的にマスターからデータ同期を行う
マスターサービスがパスワード保護を設定すると、slavサービスはマスターのパスワードに接続されます.
Redis接続パスワードを設定します.接続パスワードが設定されている場合、クライアントはRedis接続時にAUTHコマンドでパスワードを入力する必要があります.デフォルトでは閉じます.
同じ時間に最大クライアント接続数を設定します.デフォルトでは制限はありません.Redisが同時に開くことができるクライアント接続数は、Redisプロセスが開くことができる最大ファイル記述子数です.maxclients 0を設定すると、制限はありません.クライアント接続数が制限に達すると、Redisは新しい接続を閉じ、max number of clients reachedエラーメッセージをクライアントに返します.
Redisの最大メモリ制限を指定します.Redisは起動時にメモリにデータをロードします.最大メモリに達すると、Redisは期限切れまたは期限切れになるKeyをクリアしようとします.このメソッドの処理後も最大メモリ設定に達し、書き込み操作はできませんが、読み取り操作はできます.Redisの新しいvmメカニズムは、Keyをメモリに保存し、Valueはswap領域に保存します.
更新操作のたびにログを記録するかどうかを指定します.Redisはデフォルトでは非同期でディスクにデータを書き込みます.オンにしないと、電源が切れたときにしばらくの間データが失われる可能性があります.redis自体の同期データファイルは上記save条件で同期されるため、一定期間メモリにしか存在しないデータもあります.デフォルトはno
更新ログファイル名を指定します.デフォルトはappendonlyです.aof
更新ログ条件を指定します.3つのオプション値があります.no:オペレーティングシステムがデータキャッシュをディスクに同期することを示します(速い)always:更新操作のたびにfsync()を手動で呼び出してディスクにデータを書き込むことを示します(遅い、安全な)everysec:毎秒同期することを示します(トレードオフ、デフォルト)
仮想メモリメカニズムを有効にするかどうかを指定します.デフォルト値はnoです.簡単に説明します.VMメカニズムはデータをページングし、Redisによってアクセス量の少ないページであるコールドデータswapをディスクに、アクセスの多いページはディスクによって自動的にメモリにスワップされます(後述ではRedisのVMメカニズムを詳しく分析します).
仮想メモリファイルのパス、デフォルトは/tmp/redisです.swap、複数のRedisインスタンス共有不可
vm-max-memoryより大きいすべてのデータを仮想メモリに格納します.vm-max-memoryの設定がどんなに小さくても、すべてのインデックスデータはメモリに格納されます(Redisのインデックスデータはkeysです).つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在します.既定値は0
Redis swapファイルは多くのpageに分かれており、1つのオブジェクトは複数のpageの上に保存できるが、1つのpageでは複数のオブジェクトに共有されてはいけない.vm-page-sizeは格納されたデータサイズに基づいて設定される.著者らは、多くの小さなオブジェクトを格納する場合、pageサイズは32または64 bytesに設定することを提案する.大きなオブジェクトを格納する場合は、より大きなpageを使用し、不確定な場合はデフォルト値を使用します.
swapファイルのpage数を設定します.ページテーブル(ページの空きや使用を示すbitmap)がメモリに格納されているため、ディスク上で8つのpagesごとに1 byteのメモリが消費されます.
swapファイルにアクセスするスレッド数を設定するには、マシンのコア数を超えないほうがいいです.0に設定すると、swapファイルに対する操作はすべてシリアルで、比較的長い遅延をもたらす可能性があります.既定値は4
クライアントに応答するときに、小さなパケットを1つのパケットに統合して送信するかどうかを設定し、デフォルトではオンにします.
一定の数または最大の要素が臨界値を超える場合に、特殊なハッシュアルゴリズムを使用することを指定します.
リセットハッシュをアクティブ化するかどうかを指定し、デフォルトでオンにします(Redisのハッシュアルゴリズムについては後述します)
同じホスト上の複数のRedisインスタンス間で同じプロファイルを使用しながら、個々のインスタンスが独自の特定のプロファイルを持つ他のプロファイルを含めることを指定します.
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