English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 個のオプション値があります:
|
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インスタンス間で同一の設定ファイルを使用し、同時に各インスタンスには独自の特定の設定ファイルがあります |