redis.conf設定値一覧(Redis6)

2021/03/04に公開

redis.confの設定値を一覧にし、設定値をまとめました。
redis.conf内の設定値を上から順に書いています。
動作確認していない設定値もありますので、ご了承ください。

INCLUDES

デフォルト設定値 設定の種類(または設定例) 説明
# include /path/to/local.conf
# include /path/to/other.conf
/etc/redis/local.conf 読み込む設定ファイルの配置先

MODULES

デフォルト設定値 設定の種類(または設定例) 説明
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so
/etc/redis/other_module.so 起動時に読み込むモジュール指定

NETWORK

デフォルト設定値 設定の種類(または設定例) 説明
bind 127.0.0.0.1 bind 192.168.1.1.100 10.0.0.0.1
bind 127.0.0.0.1 ::1
接続可能なIPを指定する
コメントアウトすると全てのIPから接続できる
protected-mode yes protected-mode yes bindが設定されていない場合、
localhostのみ接続できる
protected-mode no bindが設定されていない場合、
全てのIPから接続できる
port 6379 port 6380 redisがリッスンするポート
tcp-backlog 511 tcp-backlog 1024 TCPbacklog(最大接続待受け数)
OSの/proc/sys/net/core/somaxconnに切り捨てられるため、
somaxconnの設定値もあげる必要がある
# unixsocket /tmp/redis.sock unixsocket /tmp/redis.sock Unix socketを利用する
socketファイルのパス
# unixsocketperm 700 unixsocketperm 700 socketファイルのパーミッション
timeout 0 timeout 0 クライアントのタイムアウト時間(秒)
0なら無効
tcp-keepalive 300 tcp-keepalive 300 0以外ならSO_KEEPALIVEを利用してTCP ACKs をクライアントに送信する

TLS/SSL

デフォルト設定値 設定の種類(または設定例) 説明
# port 0
# tls-port 6379
port 0
tls-port 6379
TLS/SSLの有効化(デフォルトでは無効)
# tls-cert-file redis.crt
# tls-key-file redis.key
tls-cert-file /etc/redis/redis.crt
tls-key-file /etc/redis/redis.key
認証に使用するX.509証明書と秘密鍵配置先
# tls-dh-params-file redis.dh tls-dh-params-file /etc/redis/redis.dh TLSで利用するDHパラメータファイルの配置先
# tls-ca-cert-file ca.crt
# tls-ca-cert-dir /etc/ssl/certs
tls-ca-cert-dir /etc/ssl/certs CA証明書の配置先
# tls-auth-clients no
# tls-auth-clients optional
tls-auth-clients no クライアント証明書の認証の有効化
# tls-replication yes tls-replication yes レプリケーション時のtls利用の有効化
tls-replication no レプリケーション時のtls利用の無効化
# tls-cluster yes tls-cluster yes クラスター間でtls利用の有効化
tls-cluster no クラスター間でtls利用の無効化
# tls-protocols "TLSv1.2 TLSv1.3" tls-protocols "TLSv1.2 TLSv1.3" TLSのバージョン指定
# tls-ciphers DEFAULT:!MEDIUM tls-ciphers DEFAULT:!MEDIUM 許可する暗号化スイート
TLSv1.2以前にのみ適用される
# tls-ciphersuites
TLS_CHACHA20_POLY1305_SHA256
tls-ciphersuites
TLS_CHACHA20_POLY1305_SHA256
許可する暗号化スイート
TLSv1.3に適用される
# tls-prefer-server-ciphers yes tls-prefer-server-ciphers yes サーバ側の暗号化優先順位を利用
tls-prefer-server-ciphers no クライアント側の暗号化優先順位を利用
# tls-session-caching no tls-session-caching yes TLSセッションキャッシュの有効化
コメントアウトだと有効
tls-session-caching no TLSセッションキャッシュの無効化
# tls-session-cache-size 5000 tls-session-cache-size 5000 キャッシュされるTLSセッション数
デフォルトは20480
# tls-session-cache-timeout 60 tls-session-cache-timeout 60 キャッシュされたTLSセッションのタイムアウト時間
デフォルトは300秒

GENERAL

デフォルト設定値 設定の種類(または設定例) 説明
daemonize no daemonize no
daemonize yes
デーモンとして実行するかどうか
supervised no supervised no 連携しない
supervised upstart upstartと連携する
supervised systemd systemdと連携する
supervised auto upstartかsystemdか自動で判断し連携する
pidfile /var/run/redis_6379.pid pidfile /var/run/redis_6380.pid pidファイルの配置先
loglevel notice loglevel debug ログレベル デバッグ用
loglevel verbose 詳細、デバッグよりは少ない
loglevel notice 運用に適したログ量
loglevel warning criticalなメッセージのみ
logfile "" logfile "/var/log/redis-6380.log" ログ出力先
# syslog-enabled no syslog-enabled yes syslogを利用する
syslog-enabled no syslogを利用しない
# syslog-ident redis syslog-ident redis syslogのID指定
# syslog-facility local0 syslog-facility local0 syslogのファシリティ値指定
LOCAL0-LOCAL7を指定する
databases 16 databases 16 データベースの数を指定する
always-show-logo yes always-show-logo yes 起動時のログにアスキーアートを出力する
always-show-logo no 起動時のログにアスキーアートを出力する

SNAPSHOTTING

デフォルト設定値 設定の種類(または設定例) 説明
save 900 1
save 300 10
save 60 10000
save 900 1
save 300 10
save 60 10000
save 300 10 なら
300秒間に10key変更されたら
スナップショットを取得
save "" にするとスナップショット無効
stop-writes-on-bgsave-error yes stop-writes-on-bgsave-error yes スナップショット取得失敗時に
redisの書き込みを停止する
stop-writes-on-bgsave-error no スナップショット取得失敗時しても
redisの書き込みを停止しない
rdbcompression yes rdbcompression yes rdbをダンプする際、圧縮する
rdbcompression no rdbをダンプする際、圧縮しない
rdbchecksum yes rdbchecksum yes rdbのチェックサムを有効にする
rdbchecksum no rdbのチェックサムを無効にする
dbfilename dump.rdb dbfilename dump-6380.rdb rdbファイル名
rdb-del-sync-files no rdb-del-sync-files yes replicaでのrdbファイルを削除する
rdb-del-sync-files no replicaでのrdbファイルを削除しない
dir ./ dir /etc/redis/ rdbファイル等、
デフォルト出力パス

REPLICATION

デフォルト設定値 設定の種類(または設定例) 説明
# replicaof <masterip> <masterport> replicaof 127.0.0.1 6379 redisをreplicaとして設定
masterのIPとportを設定する
# masterauth <master-password> masterauth password masterのパスワード設定
(masterでrequirepasswを使用している場合)
# masteruser <username> masteruser user Redis ACLを利用する場合の
レプリケーションで利用するユーザー
replica-serve-stale-data yes replica-serve-stale-data yes masterとの接続が切れたreplicaで、
リクエストを返却する
replica-serve-stale-data no masterとの接続が切れたreplicaで、
エラーを返却する
replica-read-only yes replica-read-only yes replicaは読み取り専用
replica-read-only no replicaは書き込み可能
replicaに書き込まれたコマンドは
masterに連携されないため通常利用しない
repl-diskless-sync no repl-diskless-sync no ディスクレスでreplicaと同期する
repl-diskless-sync yes ディスクにRDBファイルを出力し、
RDBファイルを利用して同期する
repl-diskless-sync-delay 5 repl-diskless-sync-delay 5 ディスクレスでreplicaと同期するための
子プロセスの生成待機時間
0にすると無効
repl-diskless-load disabled repl-diskless-load disabled ディスクレスロードを使用しない
repl-diskless-load on-empty-db ディスクレスロードは
完全に安全な場合のみ使用する
repl-diskless-load swapdb パース中dbの内容のコピーをRAMに保持する
メモリが不十分だとOOM killerが発生する
# repl-ping-replica-period 10 repl-ping-replica-period 5 replicaがmasterにpingを送信する間隔
デフォルトは10秒
# repl-timeout 60 repl-timeout 120 レプリケーションのタイムアウト値
デフォルトは60秒
repl-disable-tcp-nodelay no repl-disable-tcp-nodelay no レプリケーションに多くの帯域幅が使用される
低遅延
repl-disable-tcp-nodelay yes レプリケーションの帯域幅が削減される
遅延が発生する可能性がある
トラフィックが多い状況などに利用する
# repl-backlog-size 1mb repl-backlog-size 1mb レプリケーションのバックログサイズ
大きいほど後で部分的な再同期が実行できる
# repl-backlog-ttl 3600 repl-backlog-ttl 3600 masterの接続が切れてから
バックログが解放されるまでの時間
0だと解放されない
replica-priority 100 replica-priority 10 Sentinelがreplicaをmasterに昇格する優先順位
小さい方が優先順位が高い
# min-replicas-to-write 3 min-replicas-to-write 3 最低でもmasterに接続されている必要があるreplicaの数
下回った場合、masterは書き込みを受け付けない
# min-replicas-max-lag 10 min-replicas-max-lag 10 設定した値以上にreplicaとのラグが発生した場合
masterは書き込みを受け付けない
0にすると無効
# replica-announce-ip 5.5.5.5 replica-announce-ip 5.5.5.5 masterに返却するreplicaのIP
# replica-announce-port 1234 replica-announce-port 1234 masterに返却するreplicaのPORT

KEYS TRACKING

デフォルト設定値 設定の種類(または設定例) 説明
# tracking-table-max-keys 1000000 tracking-table-max-keys 1000000 クライアントに要求された履歴テーブルの最大キー数

SECURITY

デフォルト設定値 設定の種類(または設定例) 説明
acllog-max-len 128 acllog-max-len 256 ACLで失敗したコマンド
関連した認証のログの最大保存数
# aclfile /etc/redis/users.acl aclfile /etc/redis/users.acl ACLファイルの配置先
# requirepass foobared requirepass foobared クライアントからのAUTH認証を有効にする
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
# rename-command CONFIG ""
rename-command CONFIG "" コマンド名の変更
""にするとコマンドを無効になる

CLIENTS

デフォルト設定値 設定の種類(または設定例) 説明
# maxclients 10000 maxclients 1000 クライアントの最大同時接続数

MEMORY MANAGEMENT

デフォルト設定値 設定の種類(または設定例) 説明
maxmemory <bytes> maxmemory 1000000000 最大メモリ使用量
# maxmemory-policy noeviction maxmemory-policy volatile-lru LRUキーから削除する
TTLが有効のキーのみ
allkeys-lru LRUキーから削除する
allkeys-lfu LFUキーから削除する
volatile-random ランダムにキーを削除する
TTLが有効のキーのみ
allkeys-random ランダムにキーを削除する
volatile-ttl TTLが有効のキーを
TTLが短い順に削除する
noeviction キーを削除しない
maxmemoryに到達した場合
DEL等一部のコマンド以外利用不可になる
# maxmemory-samples 5 maxmemory-samples 5 LRU,JFU,TTLのアルゴリズムの精度調整
5で十分
10はほぼ真の結果だがCPU負荷が高い
3は早いが精度が良くない
# replica-ignore-maxmemory yes replica-ignore-maxmemory yes replicaでmasterのmaxmemory設定を無視する
replica-ignore-maxmemory no replicaでmasterのmaxmemory設定と同じになる
# active-expire-effort 1 active-expire-effort 1 有効期限切れのkey削除に割り当てるリソースリソース
最小1最大10

LAZY FREEING

デフォルト設定値 設定の種類(または設定例) 説明
lazyfree-lazy-eviction no lazyfree-lazy-eviction no maxmemory-polycyによりキーが削除されるときに
データをブロッキングしてから削除する
lazyfree-lazy-eviction yes maxmemory-polycyによりキーが削除されるときに
データをブロッキングせずに削除する
lazyfree-lazy-expire no lazyfree-lazy-expire no TTLが切れたキーが削除されるときに
データをブロッキングしてから削除する
lazyfree-lazy-expire yes TTLが切れたキーが削除されるときに
データをブロッキングせずに削除する
lazyfree-lazy-server-del no lazyfree-lazy-server-del no
lazyfree-lazy-server-del yes
replica-lazy-flush no replica-lazy-flush no レプリケーション前のflushでデータが削除されるときに
データをブロッキングしてから削除する
replica-lazy-flush yes レプリケーション前のflushでデータが削除されるときに
データをブロッキングせずに削除する
lazyfree-lazy-user-del no lazyfree-lazy-user-del no クライアント等からDELコマンドが実行された際
データをブロッキングしてから削除する
lazyfree-lazy-user-del yes クライアント等からDELコマンドが実行された際
データをブロッキングせずに削除する

THREADED I/O

デフォルト設定値 設定の種類(または設定例) 説明
# io-threads 4 io-threads 4 スレッド処理の有効化
スレッド数の指定
# io-threads-do-reads no io-threads-do-reads no 書き込みのみスレッド利用
io-threads-do-reads yes 書き込み読み込み両方スレッド利用

KERNEL OOM CONTROL

デフォルト設定値 設定の種類(または設定例) 説明
oom-score-adj no oom-score-adj no カーネルの設定を変更しない
oom-score-adj absolute oom-score-adj-values に設定した値が
カーネルに書き込まれる
oom-score-adj relative カーネルの初期値から相対的な値が
カーネルに書き込まれる
oom-score-adj-values 0 200 800 oom-score-adj-values 0 200 800 カーネルに設定する値

APPEND ONLY MODE

デフォルト設定値 設定の種類(または設定例) 説明
appendonly no appendonly no AOFバックアップの無効化
appendonly yes AOFバックアップの有効化
appendfilename "appendonly.aof" appendfilename "appendonly-6379.aof" AOFバックアップファイルの名前
# appendfsync always
appendfsync everysec
# appendfsync no
appendfsync no fsyncしない
OSのタイミングでデータをフラッシュする
appendfsync always データの変更毎にfsyncする
appendfsync everysec 1秒毎にfsyncする
no-appendfsync-on-rewrite no no-appendfsync-on-rewrite no BGSAVEかBGREWRITEAOF実行中に
fsyncを実行する
no-appendfsync-on-rewrite yes BGSAVEかBGREWRITEAOF実行中に
fsyncを実行しない
auto-aof-rewrite-percentage 100 auto-aof-rewrite-percentage 100 AOFファイルを最適化する増加率のタイミング
100だとAOFファイルが100%増加したときに最適化する
auto-aof-rewrite-min-size 64mb auto-aof-rewrite-min-size 64mb AOFファイルを最適化するときの
最小のAOFファイルサイズ
aof-load-truncated yes aof-load-truncated yes AOFファイルから復旧後
不要なAOFファイル削除する
aof-load-truncated no AOFファイルから復旧後
不要なAOFファイルを削除しない
aof-use-rdb-preamble yes aof-use-rdb-preamble yes AOFとRDBを合わせた形式で保存する
aof-use-rdb-preamble no AOFのみで保存する

LUA SCRIPTING

デフォルト設定値 設定の種類(または設定例) 説明
lua-time-limit 5000 lua-time-limit 5000 Luaスクリプトの最大実行時間(ミリ秒)
0にすると無制限に実行される

REDIS CLUSTER

デフォルト設定値 設定の種類(または設定例) 説明
# cluster-enabled yes cluster-enabled yes clusterモード有効化
cluster-enabled no clusterモード無効化
# cluster-config-file nodes-6379.conf cluster-config-file nodes-6379.conf cluster設定ファイル名
# cluster-node-timeout 15000 cluster-node-timeout 15000 clusterノードのタイムアウト判定時間(ミリ秒)
# cluster-replica-validity-factor 10 cluster-replica-validity-factor 10 masterとやり取りができない時failoverするまでに待つ時間
node-timeout×cluster-replica-validity-factor+repl-ping-replica-period
# cluster-migration-barrier 1 cluster-migration-barrier 1 replicaがいなくなったmasterがある場合
ここで設定した値より多くreplicaを持っているmasterから
replicaが移動する
# cluster-require-full-coverage yes cluster-require-full-coverage yes マッピングされていないスロットがある場合
処理を受け付けない
cluster-require-full-coverage no マッピングされていないスロットがある場合
カバーされているスロットのキーのみ処理を受け付ける
# cluster-replica-no-failover no cluster-replica-no-failover no replicaは自動でmasterに昇格する
cluster-replica-no-failover yes replicaは自動でmasterに昇格しない
# cluster-allow-reads-when-down no cluster-allow-reads-when-down no cluster構成が破損時処理を受け付けない
cluster-allow-reads-when-down yes cluster構成が破損時処理を受け付ける

CLUSTER DOCKER/NAT support

デフォルト設定値 設定の種類(または設定例) 説明
# cluster-announce-ip 10.1.1.5
# cluster-announce-port 6379
# cluster-announce-bus-port 6380
cluster-announce-ip 10.1.1.5 cluster内でノードが検出される際に利用する接続情報

SLOW LOG

デフォルト設定値 設定の種類(または設定例) 説明
slowlog-log-slower-than 10000 slowlog-log-slower-than 10000 ログに遅いクエリを記録するしきい値
単位はマイクロ秒
SLOWLOG-MAX-LEN 128 SLOWLOG-MAX-LEN 256 遅かったクエリの最大保存数

LATENCY MONITOR

デフォルト設定値 設定の種類(または設定例) 説明
latency-monitor-threshold 0 latency-monitor-threshold 10 記録する遅い処理のしきい値
単位はミリ秒
LATENCYコマンド実行でレポートを取得できる

EVENT NOTIFICATION

デフォルト設定値 設定の種類(または設定例) 説明
notify-keyspace-events "" notify-keyspace-events Elg Pub/Subクライアントに発生したイベントを通知する
K:キースペースイベント
E:キーイベント
g:通常のコマンド,DEL,EXPIRE,RENAME,,,
$:Stringコマンド
l:Listコマンド
s:Setコマンド
h:Hashコマンド
z:ソートコマンド
t:Streamコマンド
x:キーが期限入れのイベント
e:maxmemoryでキーが削除されたイベント
m:存在しないキーにアクセスしたイベント
A:g $ lshztxeのエイリアス

GOPHER SERVER

デフォルト設定値 設定の種類(または設定例) 説明
# gopher-enabled no gopher-enabled no Gopherプロトコルの無効化
gopher-enabled yes Gopherプロトコルの有効化

ADVANCED CONFIG

デフォルト設定値 設定の種類(または設定例) 説明
hash-max-ziplist-entries 512 hash-max-ziplist-entries 512 1バケットあたりのフィールドの数
hash-max-ziplist-value 64 hash-max-ziplist-value 64 フィールドの最大サイズ
list-max-ziplist-size -2 list-max-ziplist-size -2 リストごとの最大サイズ
-5:最大サイズ64kb:非推奨
-4:最大サイズ:32kb:非推奨
-3:最大サイズ:8kb:非推奨
-2:最大サイズ8kb:推奨
-1:最大サイズ:4kb:推奨
list-compress-depth 0 list-compress-depth 0 0:すべてのリスト圧縮無効
1:最初と最後以外圧縮される
2:最初最後2つずつ以外が圧縮される
3:最初最後3つずつ以外が圧縮される
set-max-intset-entries 512 set-max-intset-entries 512 エンコーディング方法が変わるしきい値
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
エンコーディング方法が変わるしきい値
hll-sparse-max-bytes 3000 hll-sparse-max-bytes 3000 HyperLogLog制限値
stream-node-max-bytes 4096
stream-node-max-entries 100
stream-node-max-bytes 4096
stream-node-max-entries 100
ストリームノードの最大サイズ
ストリームノードの最大エントリ数
どちらかが0の場合設定値は無視される
activerehashing yes activerehashing yes 100ミリ秒ごとに
メインのRedisハッシュテーブルの再ハッシュ化有効
activerehashing no 00ミリ秒ごとに
メインのRedisハッシュテーブルの再ハッシュ化無効
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
クライアントとの接続を切断する容量しきい値
# client-query-buffer-limit 1gb client-query-buffer-limit 1gb クライアントのクエリバッファ
# proto-max-bulk-len 512mb proto-max-bulk-len 512mb 1度のリクエストの文字列の容量制限
hz 10 hz 10 バックグラウンド処理の頻度
10が推奨
dynamic-hz yes dynamic-hz yes HZをクライアントの接続数に応じて変更する
aof-rewrite-incremental-fsync yes aof-rewrite-incremental-fsync yes 32MB毎にfsyncする
aof-rewrite-incremental-fsync no 32MB毎にfsyncしない
rdb-save-incremental-fsync yes rdb-save-incremental-fsync yes 32MB毎にfsyncする
rdb-save-incremental-fsync no 32MB毎にfsyncしない
# lfu-log-factor 10
# lfu-decay-time 1
# lfu-log-factor 10
# lfu-decay-time 1
LFUカウンタの設定値

ACTIVE DEFRAGMENTATION

デフォルト設定値 設定の種類(または設定例) 説明
# activedefrag no activedefrag no アクティブデフラグ無効
activedefrag yes アクティブデフラグ有効
# active-defrag-ignore-bytes 100mb active-defrag-ignore-bytes 100mb アクティブデフラグ開始しきい値
# active-defrag-threshold-lower 10 active-defrag-threshold-lower 10 アクティブデフラグ開始しきい値
# active-defrag-threshold-upper 100 active-defrag-threshold-upper 100 断片化の最大パーセンテージ
# active-defrag-cycle-min 1 active-defrag-cycle-min 1 デフラグの最小CPU使用率
# active-defrag-cycle-max 25 active-defrag-cycle-max 25 デフラグの最大CPU使用率
# active-defrag-max-scan-fields 1000 active-defrag-max-scan-fields 1000 set/hash/zset/listフィールドの最大値
jemalloc-bg-thread yes jemalloc-bg-thread yes Jemallocバックグラウンドスレッド有効化
jemalloc-bg-thread no Jemallocバックグラウンドスレッド無効化
# server_cpulist 0-7:2
# bio_cpulist 1,3
# aof_rewrite_cpulist 8-11: # aof_rewrite_cpulist
# bgsave_cpulist 1,10-11
server_cpulist 0-7:2
bio_cpulist 1,3
aof_rewrite_cpulist 8-11
bgsave_cpulist 1,10-11
プロセスごとにcpu affinityを固定する
# ignore-warnings ARM64-COW-BUG # ignore-warnings ARM64-COW-BUG ARM64-COW-BUG の警告を無視しない
ignore-warnings ARM64-COW-BUG ARM64-COW-BUG の警告を無視する

Discussion