Redisの構成
Redisの構成
構成方法
redisを通ります.confファイルコマンドラインパラメータでredisを上書きできます.confの構成CONFIGSETコマンドでRedisを再起動せずに部分Redis構成を動的に変更します.
Redisはデフォルトで16のデータベースをサポートしており、パラメータdatabasesを構成することでこの数値を変更できます.redisクライアントの接続に成功した後、デフォルトでは0番のデータベースを選択しますが、SELECTコマンドを使用してデータベースを交換することができます.
redis.conf構成項目の説明
コンフィギュレーション・アイテム
説明
daemonize no
Redisはデフォルトではデーモンプロセスでは実行されません.この構成項目を変更してyesを使用してデーモンプロセスを有効にすることができます.
pidfile/var/run/redis.pid
Redisがデーモン方式で実行する場合、Redisはデフォルトでpidを/var/run/redisに書き込む.pidファイル、pidfileで指定できます
port 6379
Redisリスニングポートを指定し、デフォルトポートは6379で、著者は自分のブログで6379をデフォルトポートとして選んだ理由を説明した.6379は携帯電話のボタンにMERZ対応の番号があり、MERZはイタリアの歌姫Alessia Merzの名前から取ったからだ.
bind 127.0.0.1
バインドされたホストアドレス
timeout 300
クライアントがアイドル状態になってから接続をオフにします.0を指定すると、この機能をオフにします.
loglevel verbose
ログ・レコード・レベルを指定します.Redisでは、debug、verbose、notice、warningの4つのレベルがサポートされています.デフォルトはverboseです.
logfile stdout
ログ記録方式、デフォルトは標準出力で、Redisをデーモン方式で実行するように構成し、ここでログ記録方式を標準出力に構成すると、ログは/dev/nullに送信されます.
databases 16
データベースの数を設定します.デフォルトのデータベースは0です.SELECTコマンドを使用して、接続にデータベースidを指定できます.
save
どのくらいの時間内に、何回の更新操作があるかを指定して、データをデータファイルに同期して、複数の条件を合わせることができます
rdbcompression yes
ローカル・データベースに格納するときにデータを圧縮するかどうかを指定します.デフォルトはyesです.RedisはLZF圧縮を採用しています.CPUの時間を節約するためにこのオプションをオフにすることができますが、データベース・ファイルが大きくなります.
dbfilename dump.rdb
ローカルデータベースのファイル名を指定します.デフォルトはdumpです.rdb
dir ./
ローカル・データベースの保存ディレクトリの指定
slaveof
本機がslavサービスである場合、マスターサービスのIPアドレスとポートを設定し、Redis起動時に自動的にマスターからデータ同期を行う
masterauth
マスターサービスがパスワード保護を設定すると、slavサービスはマスターのパスワードに接続されます.
requirepass foobared
Redis接続パスワードを設定します.接続パスワードが設定されている場合、クライアントはRedis接続時にAUTHコマンドでパスワードを入力する必要があります.デフォルトでは閉じます.
maxclients 128
同じ時間に最大クライアント接続数を設定します.デフォルトでは制限はありません.Redisが同時に開くことができるクライアント接続数は、Redisプロセスが開くことができる最大ファイル記述子数です.maxclients 0を設定すると、制限はありません.クライアント接続数が制限に達すると、Redisは新しい接続を閉じ、max number of clients reachedエラーメッセージをクライアントに返します.
maxmemory
Redisの最大メモリ制限を指定します.Redisは起動時にメモリにデータをロードします.最大メモリに達すると、Redisは期限切れまたは期限切れになるKeyをクリアしようとします.このメソッドの処理後も最大メモリ設定に達し、書き込み操作はできませんが、読み取り操作はできます.Redisの新しいvmメカニズムは、Keyをメモリに保存し、Valueはswap領域に保存します.
appendonly no
更新操作のたびにログを記録するかどうかを指定します.Redisはデフォルトでは非同期でディスクにデータを書き込みます.オンにしないと、電源が切れたときにしばらくの間データが失われる可能性があります.redis自体の同期データファイルは上記save条件で同期されるため、一定期間メモリにしか存在しないデータもあります.デフォルトはno
appendfilename appendonly.aof
更新ログファイル名を指定します.デフォルトはappendonlyです.aof
appendfsync everysec|no|always
更新ログ条件(no:オペレーティングシステムがデータキャッシュをディスクに同期する(速い)、always:更新操作のたびにfsync()を手動で呼び出してディスクにデータを書き込む(遅い、安全)、everysec:毎秒同期する(トレードオフ、デフォルト)を指定します.
vm-enabled no
仮想メモリメカニズムを有効にするかどうかを指定します.デフォルトはnoです.VMメカニズムはデータをページングして保存します.Redisによってアクセス量の少ないページであるコールドデータswapをディスクに、アクセスの多いページはディスクによって自動的にメモリに変換されます(後述するRedisのVMメカニズムを詳しく分析します).
vm-swap-file/tmp/redis.swap
仮想メモリファイルのパス、デフォルトは/tmp/redisです.swap、複数のRedisインスタンス共有不可
vm-max-memory 0
vm-max-memoryより大きいすべてのデータを仮想メモリに格納します.vm-max-memoryの設定がどんなに小さくても、すべてのインデックスデータはメモリに格納されます(Redisのインデックスデータはkeysです).つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在します.既定値は0
vm-page-size 32
Redis swapファイルは多くのpageに分かれており、1つのオブジェクトは複数のpageの上に保存できるが、1つのpageでは複数のオブジェクトに共有されてはいけない.vm-page-sizeは格納されたデータサイズに基づいて設定される.著者らは、多くの小さなオブジェクトを格納する場合、pageサイズは32または64 bytesに設定することを提案する.大きなオブジェクトを格納する場合は、より大きなpageを使用し、不確定な場合はデフォルト値を使用します.
vm-pages 134217728
swapファイルのpage数を設定します.ページテーブル(ページの空きや使用を示すbitmap)がメモリに格納されているため、ディスク上で8つのpagesごとに1 byteのメモリが消費されます.
vm-max-threads 4
swapファイルにアクセスするスレッド数を設定するには、マシンのコア数を超えないほうがいいです.0に設定すると、swapファイルに対する操作はすべてシリアルで、比較的長い遅延をもたらす可能性があります.既定値は4
glueoutputbuf yes
クライアントに応答するときに、小さなパケットを1つのパケットに統合して送信するかどうかを設定し、デフォルトではオンにします.
hash-max-zipmap-entries 64 hash-max-zipmap-value 512
一定の数または最大の要素が臨界値を超える場合に、特殊なハッシュアルゴリズムを使用することを指定します.
activerehashing yes
リセットハッシュをアクティブ化するかどうかを指定し、デフォルトでオンにします(Redisのハッシュアルゴリズムについては後述します)
include/path/to/local.conf
同じホスト上の複数のRedisインスタンス間で同じプロファイルを使用しながら、個々のインスタンスが独自の特定のプロファイルを持つ他のプロファイルを含めることを指定します.
もし間違いを発見したら、軽く撮って、伝言の交流を歓迎して、ありがとうございます
構成方法
redisを通ります.confファイルコマンドラインパラメータでredisを上書きできます.confの構成CONFIGSETコマンドでRedisを再起動せずに部分Redis構成を動的に変更します.
redis> CONFIG SET loglevel warning
OK
redis> CONFIG GET loglevel
1) "loglevel"
2) "warning"
Redisはデフォルトで16のデータベースをサポートしており、パラメータdatabasesを構成することでこの数値を変更できます.redisクライアントの接続に成功した後、デフォルトでは0番のデータベースを選択しますが、SELECTコマンドを使用してデータベースを交換することができます.
redis> SELECT 1
OK
redis [1]> GET foo
(nil)
redis.conf構成項目の説明
コンフィギュレーション・アイテム
説明
daemonize no
Redisはデフォルトではデーモンプロセスでは実行されません.この構成項目を変更してyesを使用してデーモンプロセスを有効にすることができます.
pidfile/var/run/redis.pid
Redisがデーモン方式で実行する場合、Redisはデフォルトでpidを/var/run/redisに書き込む.pidファイル、pidfileで指定できます
port 6379
Redisリスニングポートを指定し、デフォルトポートは6379で、著者は自分のブログで6379をデフォルトポートとして選んだ理由を説明した.6379は携帯電話のボタンにMERZ対応の番号があり、MERZはイタリアの歌姫Alessia Merzの名前から取ったからだ.
bind 127.0.0.1
バインドされたホストアドレス
timeout 300
クライアントがアイドル状態になってから接続をオフにします.0を指定すると、この機能をオフにします.
loglevel verbose
ログ・レコード・レベルを指定します.Redisでは、debug、verbose、notice、warningの4つのレベルがサポートされています.デフォルトはverboseです.
logfile stdout
ログ記録方式、デフォルトは標準出力で、Redisをデーモン方式で実行するように構成し、ここでログ記録方式を標準出力に構成すると、ログは/dev/nullに送信されます.
databases 16
データベースの数を設定します.デフォルトのデータベースは0です.SELECTコマンドを使用して、接続にデータベースidを指定できます.
save
どのくらいの時間内に、何回の更新操作があるかを指定して、データをデータファイルに同期して、複数の条件を合わせることができます
rdbcompression yes
ローカル・データベースに格納するときにデータを圧縮するかどうかを指定します.デフォルトはyesです.RedisはLZF圧縮を採用しています.CPUの時間を節約するためにこのオプションをオフにすることができますが、データベース・ファイルが大きくなります.
dbfilename dump.rdb
ローカルデータベースのファイル名を指定します.デフォルトはdumpです.rdb
dir ./
ローカル・データベースの保存ディレクトリの指定
slaveof
本機がslavサービスである場合、マスターサービスのIPアドレスとポートを設定し、Redis起動時に自動的にマスターからデータ同期を行う
masterauth
マスターサービスがパスワード保護を設定すると、slavサービスはマスターのパスワードに接続されます.
requirepass foobared
Redis接続パスワードを設定します.接続パスワードが設定されている場合、クライアントはRedis接続時にAUTHコマンドでパスワードを入力する必要があります.デフォルトでは閉じます.
maxclients 128
同じ時間に最大クライアント接続数を設定します.デフォルトでは制限はありません.Redisが同時に開くことができるクライアント接続数は、Redisプロセスが開くことができる最大ファイル記述子数です.maxclients 0を設定すると、制限はありません.クライアント接続数が制限に達すると、Redisは新しい接続を閉じ、max number of clients reachedエラーメッセージをクライアントに返します.
maxmemory
Redisの最大メモリ制限を指定します.Redisは起動時にメモリにデータをロードします.最大メモリに達すると、Redisは期限切れまたは期限切れになるKeyをクリアしようとします.このメソッドの処理後も最大メモリ設定に達し、書き込み操作はできませんが、読み取り操作はできます.Redisの新しいvmメカニズムは、Keyをメモリに保存し、Valueはswap領域に保存します.
appendonly no
更新操作のたびにログを記録するかどうかを指定します.Redisはデフォルトでは非同期でディスクにデータを書き込みます.オンにしないと、電源が切れたときにしばらくの間データが失われる可能性があります.redis自体の同期データファイルは上記save条件で同期されるため、一定期間メモリにしか存在しないデータもあります.デフォルトはno
appendfilename appendonly.aof
更新ログファイル名を指定します.デフォルトはappendonlyです.aof
appendfsync everysec|no|always
更新ログ条件(no:オペレーティングシステムがデータキャッシュをディスクに同期する(速い)、always:更新操作のたびにfsync()を手動で呼び出してディスクにデータを書き込む(遅い、安全)、everysec:毎秒同期する(トレードオフ、デフォルト)を指定します.
vm-enabled no
仮想メモリメカニズムを有効にするかどうかを指定します.デフォルトはnoです.VMメカニズムはデータをページングして保存します.Redisによってアクセス量の少ないページであるコールドデータswapをディスクに、アクセスの多いページはディスクによって自動的にメモリに変換されます(後述するRedisのVMメカニズムを詳しく分析します).
vm-swap-file/tmp/redis.swap
仮想メモリファイルのパス、デフォルトは/tmp/redisです.swap、複数のRedisインスタンス共有不可
vm-max-memory 0
vm-max-memoryより大きいすべてのデータを仮想メモリに格納します.vm-max-memoryの設定がどんなに小さくても、すべてのインデックスデータはメモリに格納されます(Redisのインデックスデータはkeysです).つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在します.既定値は0
vm-page-size 32
Redis swapファイルは多くのpageに分かれており、1つのオブジェクトは複数のpageの上に保存できるが、1つのpageでは複数のオブジェクトに共有されてはいけない.vm-page-sizeは格納されたデータサイズに基づいて設定される.著者らは、多くの小さなオブジェクトを格納する場合、pageサイズは32または64 bytesに設定することを提案する.大きなオブジェクトを格納する場合は、より大きなpageを使用し、不確定な場合はデフォルト値を使用します.
vm-pages 134217728
swapファイルのpage数を設定します.ページテーブル(ページの空きや使用を示すbitmap)がメモリに格納されているため、ディスク上で8つのpagesごとに1 byteのメモリが消費されます.
vm-max-threads 4
swapファイルにアクセスするスレッド数を設定するには、マシンのコア数を超えないほうがいいです.0に設定すると、swapファイルに対する操作はすべてシリアルで、比較的長い遅延をもたらす可能性があります.既定値は4
glueoutputbuf yes
クライアントに応答するときに、小さなパケットを1つのパケットに統合して送信するかどうかを設定し、デフォルトではオンにします.
hash-max-zipmap-entries 64 hash-max-zipmap-value 512
一定の数または最大の要素が臨界値を超える場合に、特殊なハッシュアルゴリズムを使用することを指定します.
activerehashing yes
リセットハッシュをアクティブ化するかどうかを指定し、デフォルトでオンにします(Redisのハッシュアルゴリズムについては後述します)
include/path/to/local.conf
同じホスト上の複数のRedisインスタンス間で同じプロファイルを使用しながら、個々のインスタンスが独自の特定のプロファイルを持つ他のプロファイルを含めることを指定します.
もし間違いを発見したら、軽く撮って、伝言の交流を歓迎して、ありがとうございます