Redis 配置详解
网络
########################## NETWORK ##########################
bind:指定 Redis 只接收来自于特定 IP 地址的请求,默认处理所有请求。
bind 127.0.0.1
protected-mode:是否开启保护模式,默认开启。
- protected-mode yes
port:Redis 监听的端口号。
port 6379
tcp-backlog:确定 TCP 连接中已完成队列的长度。
- tcp-backlog 511
timeout:客户端空闲超时时间。
- timeout 0
tcp-keepalive:TCP 保持存活参数。
- tcp-keepalive 300
daemonize:是否在后台执行。
- daemonize yes
pidfile:Redis 的进程文件。
- pidfile /var/run/redis/redis.pid
loglevel:指定服务端日志的级别。
- loglevel notice
logfile:指定记录日志的文件。
- logfile /usr/local/redis/var/redis.log
databases:数据库的数量。
databases 16
持久化
########################## SNAPSHOTTING ##########################
save:RDB 核心规则配置,指定时间间隔和更新操作次数来同步数据到硬盘。
save 900
save 300 10
save 60 10000
stop-writes-on-bgsave-error:RDB 持久化出现错误后的处理方式。
stop-writes-on-bgsave-error yes
rdbcompression:存储至本地数据库时是否压缩数据。
- rdbcompression yes
rdbchecksum:是否校验 rdb 文件。
rdbchecksum yes
dbfilename:指定本地数据库文件名。
- dbfilename dump.rdb
dir:数据目录。
dir /usr/local/redis/var
复制
########################## REPLICATION ##########################
replica-serve-stale-data:从库与主机失去连接或复制进行时的运行方式。
- replica-serve-stale-data yes
replica-read-only:从服务器是否只读。
- replica-read-only yes
repl-diskless-sync:是否使用 socket 方式复制数据。
- repl-diskless-sync no
repl-diskless-sync-delay:diskless 复制的延迟时间。
- repl-diskless-sync-delay 5
repl-ping-slave-period:从库向服务器发送 ping 请求的时间间隔。
- repl-ping-slave-period 10
repl-timeout:复制连接超时时间。
- repl-timeout 60
repl-disable-tcp-nodelay:是否禁止复制 tcp 链接的 tcp nodelay 参数。
- repl-disable-tcp-nodelay no
repl-backlog-size:复制缓冲区大小。
- repl-backlog-size 1mb
repl-backlog-ttl:master 没有 slave 时释放复制缓冲区内存的时间长度。
- repl-backlog-ttl 3600
replica-priority:当 master 不可用时,选举 slave 为 master 的优先级。
- replica-priority 100
min-replicas-to-write:master 最少需要的健康 slave 个数才能执行写命令。
- min-replicas-to-write 3
min-replicas-max-lag:健康 slave 的延迟判断标准。
min-replicas-max-lag 10
安全
########################## SECURITY ##########################
requirepass:配置认证密码。
- requirepass foobared
rename-command:修改危险命令的名称或禁止命令。
客户端
########################## CLIENTS ##########################
maxclients:能连上 Redis 的最大客户端连接数量。
maxclients 10000
内存管理
########################## MEMORY MANAGEMENT ##########################
maxmemory:设置 Redis 使用的内存字节数。
- maxmemory <bytes>
maxmemory-policy:内存容量超过 maxmemory 后的处理策略。
volatile-lru
volatile-random
volatile-ttl
allkeys-lru
allkeys-random
noeviction
maxmemory-samples:lru 检测的样本数。
replica-ignore-maxmemory:是否开启 slave 的最大内存。
延迟释放
########################## LAZY FREEING ##########################
lazyfree-lazy-eviction:以非阻塞方式释放内存。
- lazyfree-lazy-eviction no
lazyfree-lazy-expire
- lazyfree-lazy-expire no
lazyfree-lazy-server-del
- lazyfree-lazy-server-del no
replica-lazy-flush
replica-lazy-flush no
仅追加模式
########################## APPEND ONLY MODE ##########################
appendonly:是否开启 Append Only 模式。
- appendonly no
appendfilename:指定本地数据库文件名。
- appendfilename "appendonly.aof"
appendfsync:aof 持久化策略的配置。
- always
- everysec
- no
no-appendfsync-on-rewrite:rewrite 期间对新写操作的处理。
- no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage:aof 自动重写的条件。
- auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size:允许重写的最小 aof 文件大小。
- auto-aof-rewrite-min-size 64mb
aof-load-truncated:处理不完整的 aof 文件的方式。
- aof-load-truncated yes
aof-use-rdb-preamble:加载 Redis 时对 AOF 文件的识别。
LUA
########################## LUA SCRIPTING ##########################
lua-time-limit:Lua 脚本的最大时间限制。
lua-time-limit 5000
集群
########################## REDIS CLUSTER ##########################
cluster-enabled:集群开关。
- cluster-enabled yes
cluster-config-file:集群配置文件的名称。
cluster-config-file nodes-6379.conf
cluster-node-timeout:节点互连超时的阀值。
- cluster-node-timeout 15000
cluster-replica-validity-factor:判断 slave 节点与 master 断线时间是否过长的因子。
- cluster-replica-validity-factor 10
cluster-migration-barrier:master 的 slave 数量迁移条件。
- cluster-migration-barrier 1
cluster-require-full-coverage:集群提供服务的条件。
cluster-require-full-coverage yes
慢指令
########################## SLOW LOG ##########################
slowlog-log-slower-than:记录慢命令的时间阈值。
- slowlog-log-slower-than 10000
slowlog-max-len:慢查询日志长度。
延迟监控
########################## LATENCY MONITOR ##########################
latency-monitor-threshold:延迟监控的阈值。
事件通知
########################## EVENT NOTIFICATION ##########################
notify-keyspace-events:键空间通知的参数。
高级配置
########################## ADVANCED CONFIG ##########################
hash-max-ziplist-entries:hash 数据结构的相关配置。
- hash-max-ziplist-entries 512
hash-max-ziplist-value
- hash-max-ziplist-value 64
list-max-ziplist-size
- list-max-ziplist-size -2
list-compress-depth
- list-compress-depth 0
set-max-intset-entries
- set-max-intset-entries 512
zset-max-ziplist-entries
- zset-max-ziplist-entries 128
zset-max-ziplist-value
- zset-max-ziplist-value 64
hll-sparse-max-bytes
- hll-sparse-max-bytes 3000
stream-node-max-bytes
- stream-node-max-bytes 4096
stream-node-max-entries
- stream-node-max-entries 100
activerehashing:是否对 hash 表进行重新 hash 以释放内存。
- activerehashing yes
client-output-buffer-limit:对客户端输出缓冲的限制。
- 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:客户端查询的缓存极限值大小。
proto-max-bulk-len:Redis 协议中批量请求的限制。
hz:Redis 执行任务的频率。
- hz 10
dynamic-hz:是否启用动态赫兹。
aof-rewrite-incremental-fsync:aof 重写时的 fsync 方式。
- aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync:rdb 保存时的 fsync 方式。
主动碎片整理
########################## ACTIVE DEFRAGMENTATION ##########################
activedefrag:是否启用活动碎片整理。
- activedefrag yes
active-defrag-ignore-bytes:启动活动碎片整理的最小碎片浪费量。
- active-defrag-ignore-bytes 100mb
active-defrag-threshold-lower:启动活动碎片整理的最小碎片百分比。
- active-defrag-threshold-lower 10
active-defrag-threshold-upper:最大碎片百分比。
- active-defrag-threshold-upper 100
active-defrag-cycle-min:碎片整理的最小 CPU 工作量。
- active-defrag-cycle-min 5
active-defrag-cycle-max:碎片整理的最大 CPU 工作量。
- active-defrag-cycle-max 75
active-defrag-max-scan-fields:处理的 set/hash/zset/list 字段的最大数目。
active-defrag-max-scan-fields 1000