English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redis 配置

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。

你可以通过 CONFIG 命令查看或设置配置项。

文法

Redis CONFIG 命令格式如下:

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

オンラインサンプル

redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"

使用 * 号获取所有配置项:

オンラインサンプル

redis 127.0.0.1:6379> CONFIG GET *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory"-samples"
 16) "3"
 17) "timeout"
 18) "0"
 19) "tcp"-keepalive"
 20) "0"
 21) "auto"-aof-rewrite-percentage"
 22) "100"
 23) "auto"-aof-rewrite-min-size"
 24) "67108864"
 25) "hash"-max-ziplist-entries"
 26) "512"
 27) "hash"-max-ziplist-value"
 28) "64"
 29) "list"-max-ziplist-entries"
 30) "512"
 31) "list"-max-ziplist-value"
 32) "64"
 33) "set"-max-intset-entries"
 34) "512"
 35) "zset"-max-ziplist-entries"
 36) "128"
 37) "zset"-max-ziplist-value"
 38) "64"
 39) "hll"-sparse-max-bytes"
 40) "3000"
 41) "lua"-time-limit"
 42) "5000"
 43) "slowlog"-log-slower-than"
 44) "10000"
 45) "latency"-monitor-threshold"
 46) "0"
 47) "slowlog"-max-len"
 48) "128"
 49) "port"
 50) "6379"
 51) "tcp"-backlog"
 52) "511"
 53) "databases"
 54) "16"
 55) "repl-ping-slave-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "maxclients"
 64) "4064"
 65) "watchdog"-period"
 66) "0"
 67) "slave"-priority"
 68) "100"
 69) "min"-slaves-to-write"
 70) "0"
 71) "min"-slaves-max-lag"
 72) "10"
 73) "hz"
 74) "10"
 75) "no"-appendfsync-on-rewrite"
 76) "no"
 77) "slave"-serve-stale-data"
 78) "yes"
 79) "slave"-read-only"
 80) "yes"
 81) "stop"-writes-on-bgsave-error"
 82) "yes"
 83) "daemonize"
 84) "no"
 85) "rdbcompression"
 86) "yes"
 87) "rdbchecksum"
 88) "yes"
 89) "activerehashing"
 90) "yes"
 91) "repl-disable-tcp-nodelay"
 92) "no"
 93) "aof"-rewrite-incremental-fsync"
 94) "yes"
 95) "appendonly"
 96) "no"
 97) "dir"
 98) "/home/deepak/Downloads/redis-2.8.13/src"
 99) "maxmemory"-policy"
100) "volatile"-lru"
101) "appendfsync"
102) "everysec"
103) "save"
104) "3600 1 300 100 60 10000"
105) "loglevel"
106) "notice"
107) "client"-output-buffer-limit"
108) "normal 0 0 0 slave" 268435456 67108864 60 pubsub 33554432 8388608 60"
109) "unixsocketperm"
110) "0"
111) "slaveof"
112) ""
113) "notify"-keyspace-events"
114) ""
115) "bind"
116) ""

設定編集

redis.confファイルを編集したり、 CONFIG set コマンドを使って設定を変更します。

文法

CONFIG SET コマンドの基本的な文法:

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

オンラインサンプル

redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"

パラメータ説明

redis.conf設定項目の説明は以下の通りです:

番号設定項目説明
1
daemonize no
Redisはデフォルトでダ monプロセスとして動作しておらず、この設定項目を使って変更できます、yesを使ってダ monプロセスを有効にします(Windowsではダ monスレッドの設定はnoにすることができません)
2
pidfile /var/run/redis.pid
Redisがデフォルトでダ monプロセスとして動作する場合、Redisはデフォルトでpidを /var/run/redis.pidファイル、pidfileで指定することができます
3
port 6379
Redisがリスニングポートを指定、デフォルトのポートは 6379、作者は自分のブログ記事でなぜその選択をしたのか説明しています 6379 デフォルトのポートとして、 6379 携帯電話のボタン上のMERZに対応する番号、そしてMERZはイタリアの歌手Alessia Merzの名前から来ています
4
bind 127.0.0.1
バインドされたホストアドレス
5
タイムアウト 300
クライアントが無活動でどれだけ秒間隔を閉じるか、0に指定された場合、その機能を閉じることを意味します
6
loglevel notice
ログ記録レベルを指定します。Redisは合計で4つのレベルをサポートしています:debug、verbose、notice、warningで、デフォルトはnoticeです。
7
logfile stdout
ログ記録方法を指定します。デフォルトは標準出力です。Redisがデフォルトでダemonsプロセスとして実行され、ここでログ記録方法が標準出力に設定されている場合、ログは /dev/null
8
databases 16
データベースの数を設定します。デフォルトのデータベースは0です。SELECTコマンドを使用して接続上でデータベースIDを指定することができます。
9
save <seconds> <changes>

Redisのデフォルト設定ファイルには、3つの条件が提供されています:

save 900 1

save 300 10

save 60 10000

それぞれが 900秒(15 分以内に 1 の変更、300秒(5 分以内に 10 の変更および 60秒以内に 10000の変更。

データがどれくらいの時間と更新操作の回数でデータファイルに同期されるかを指定します。複数の条件を組み合わせることができます。
10
rdbcompression yes
ローカルデータベースにデータを保存する際にデータを圧縮するかどうかを指定します。デフォルトはyesで、RedisはLZF圧縮を使用します。CPU時間を節約するためにこのオプションをオフにすることができますが、データベースファイルが非常に大きくなることがあります。
11
dbfilename dump.rdb
ローカルデータベースのファイル名を指定します。デフォルト値はdump.rdbです。
12
dir ./
ローカルデータベースの保存ディレクトリを指定します。
13
slaveof <masterip> <masterport>
このマシンがスレーブサービスの場合、マスターサービスのIPアドレスとポートを設定します。Redisが起動すると、自動的にマスターからデータ同期を行います。
14
masterauth <master-password>
マスターサービスがパスワード保護を設定している場合、スレーブサービスがマスターに接続するパスワードです。
15
requirepass foobared
Redis接続のパスワードを設定します。接続パスワードが設定されている場合、クライアントはRedisに接続する際にAUTH <password>コマンドを通じてパスワードを提供する必要があります。デフォルトでは無効です。
16
 maxclients 128
同一時間の最大クライアント接続数を設定します。デフォルトでは無制限で、Redisが同時に開けるクライアント接続数はRedisプロセスが開ける最大ファイルディスクリプタ数です。maxclients 0に設定すると、制限はありません。クライアント接続数が制限に達すると、Redisは新しい接続を閉じ、クライアントに'max number of clients reached'エラーメッセージを返します。
17
maxmemory <bytes>
Redisの最大メモリ制限を指定します、Redisは起動時にデータをメモリに読み込みますが、最大メモリに達すると、Redisはまず有効期限が切れたKeyや近い将来に有効期限が切れるKeyをクリアしようとします、この方法で処理が終わった後も、最大メモリ設定に達すると、書き込み操作はできなくなりますが、読み取り操作はまだ可能です。Redisの新しいvmメカニズムでは、Keyはメモリに保存され、Valueはswapエリアに保存されます
18
appendonly no
更新操作の後、ログ記録を行うかどうかを指定します、Redisはデフォルトで非同期にデータをディスクに書き込みますが、オフにすると、停電時には一定期間のデータが失われる可能性があります。なぜなら、redisはデータファイルの同期は上記のsave条件に基づいて行っているため、一部のデータは一定期間だけメモリに存在する可能性があります。デフォルトはno
19
appendfilename appendonly.aof
更新ログファイル名を指定します、デフォルトはappendonly.aof
20
appendfsync everysec

更新ログ条件を指定します、合計 3 個のオプション値があります:

  • no:オペレーティングシステムがデータキャッシュをディスクに同期するまで待ちます(速い)

  • always:更新操作の後、fsync()を手動で呼び出してデータをディスクに書き込みます(遅い、安全)

  • everysec:1秒ごとに同期します(妥協、デフォルト値)

21
vm-enabled no
仮想メモリメカニズムを有効にするかどうかを指定します、デフォルト値はno、簡単に説明すると、VMメカニズムはデータをページ化して保存し、Redisがアクセス量の少ないページ、つまり冷データをディスクにswapします、アクセス量の多いページはディスクから自動的にメモリに戻されます(後の記事でRedisのVMメカニズムを詳細に分析します)
22
vm-swap-file /tmp/redis.swap
仮想メモリファイルのパス、デフォルト値は /tmp/redis.swap、複数のRedisインスタンスで共有することはできません
23
vm-max-memory 0
すべてのvm-max-memoryのデータが仮想メモリに保存されると、vm-max-memoryがどれだけ小さいか、すべてのインデックスデータはメモリ内に保存されています(Redisのインデックスデータはkeysです)、つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在しています。デフォルト値は0
24
vm-page-size 32
Redisのswapファイルは多くのpageに分かれており、1つのオブジェクトは複数のpageに保存することができますが、1つのpageは複数のオブジェクトで共有することはできません、vm-page-サイズは保存するデータの大きさに応じて設定する必要があります。著者は、多くの小さなオブジェクトを保存する場合は、pageの大きさを設定するのが良いと提案しています 32 または 64bytes;大きなオブジェクトを保存する場合は、もっと大きなpageを使用できます。不明な場合は、デフォルト値を使用します
25
vm-pages 134217728
swapファイル中のpageの数を設定します。ページテーブル(ページが空きか使用されているかを示すビットマップ)はメモリに置かれており、ディスク上の各 8 pagesが消費されます 1byteのメモリ。
26
vm-max-threads 4
swapファイルへのアクセスを行うスレッド数を設定します。機械の核数を超えないように設定してください。0に設定すると、swapファイルへのすべての操作がシリアルで、比較的長い遅延が発生する可能性があります。デフォルト値は4
27
glueoutputbuf yes
クライアントへの応答時に小さなパケットを1つのパケットにまとめて送信するかどうかを設定します。デフォルトでは有効です
28
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
一定の数を超えた場合や最大の要素が特定の閾値を超えた場合、特別なハッシュアルゴリズムを使用するように指定します
29
activerehashing yes
リセットハッシュを有効にするかどうかを指定します。デフォルトでは有効です(後でRedisのハッシュアルゴリズムについて詳しく説明します)
30
include /path/to/local.conf
指定された設定ファイルを含む他の設定ファイルを指定すると、同一のホスト上の複数のRedisインスタンス間で同一の設定ファイルを使用し、同時に各インスタンスには独自の特定の設定ファイルがあります