相对于很多大型存储系统,Redis的配置不是很多,到了 Redis 3.0之后有60多个,虽然还是不多,但是每个配置都有很重要的作用和意义,本节我们将对Redis单机模式下的所有配置进行说明。
1.总体配置
总体配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
daemonize | 是否守护进程 | no | yes|no | 不可以 |
port | 端口号 | 6379 | 整数 | 不可以 |
loglevel | 日志级别 | notice | debug|verbose|notice|warning | 可以 |
databases | 可用的数据库数 | 16 | 整数 | 不可以 |
unixsocket | unix套接字 | 空(不通过unix套接字来监听) | 指定套接字文件 | 不可以 |
unixsocketperm | unix套字权限 | 0 | Linux三位数权限 | 不可以 |
pidfile | Redis运行的进程pid文件 | /var/run/redis.pid | /var/run/redis-{port}.pid | 不可以 |
lua-time-limit |
Lua 脚本”超时时间”(单位:毫秒 |
5000 |
整数,但是此超时不会真正停止脚本运行 |
可以 |
tcp-backlog | tcp-backlog | 511 | 整数 | 可以 |
watchdog-period |
看门狗,用于诊断Redis的延迟问题,此参数是检查周期。 (此参数需要在运行时配置才能生效) |
0 | 整数 | 可以 |
activerehashing | 指定是否激活重置哈希 | yes | yes|no | 可以 |
dir | 工作目录(aof、rdb、日志文件都存放在此目录) | ./(当前目录) | 自定义 | 可以 |
2.最大内存及策略
表 14-13 内存相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
maxmemory | 最大可用内存(单位字节) | 0(没有限制) | 整数 | 可以 |
maxmemory-policy | 内存不够时,淘汰策略 | noeviction |
volatile-lru ->用lru算法删除过期的键值 allkeys-lru ->用lru 算法删除所有键值 volatile-random ->随机删除过期的键值 allkeys-random ->随机删除任何键值 volatile-ttl ->删除最近要到期的键值 noeviction -> 不删除键 |
可以 |
maxmemory-samples | 检测LRU采样数 | 5 | 整数 | 可以 |
3.AOF相关配置
表 14-14 AOF 相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
appendonly | 是否开启 AOF 持久化模式 | no | no|yes | 可以 |
appendfsync | AOF 同步磁盘频率 | everysec | always | everysec|no | 可以 |
appendfilename | AOF 文件名 | appendonly.aof | appendonly -{port}.aof | 不可以 |
aof-load-truncated | 加载AOF文件时,是否忽略AOF文件不完整的情况,让Redis 正常启动 | yes | yes|no | 可以 |
no-appendfsync-on-rewrite |
设置为yes 表示 rewrite 期间对新写操作不fsync,暂时存在缓冲区中, 等rewrite完成后再写入 |
no | no|yes | 可以 |
auto-aof-rewrite-min-size | 触发rewrite的 AOF 文件最小阀值(单位:兆) | 64m | 整数 + m(代表兆) | 可以 |
auto-aof-rewrite-percentage | 触发rewrite的 AOF 文件的增长比例条件 | 100 | 整数 | 可以 |
aof-rewrite-incremen-tal-fsync | AOF 重写过程中,是否采取增量文件同步策略 | yes | yes|no | 可以 |
4.RDB相关配置
表14-15 RDB相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
save | RDB保存条件 |
save 900 1 save 300 10 save 60 10000 |
如果没有该配置, 代表不使用自动 RDB 策略 |
可以 |
dbfilename | RDB 文件名 | dump.rdb | dump-{port}.rdb | 可以 |
rdbcompression | RDB 文件是否压缩 | yes | yes|no | 可以 |
rdbchecksum | RDB 文件是否使用校验和 | yes | yes|no | 可以 |
stop-writes-on-bgsave-error |
bgsave执行错误, 是否停止Redis 接受写请求 |
yes | yes|no | 可以 |
5.慢查询配置
表 14-16慢查询相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
slowlog-log-slower-than | 慢查询被记录的阀值(单位微秒) | 10000 | 整数 | 可以 |
slowlog-max-len | 最多记录慢查询的条数 | 128 | 整数 | 可以 |
latency-monitor-threshold | Redis 服务内存延迟监控 | 0(关闭) | 整数 | 可以 |
6.数据结构优化配置
表 14-17 数据结构优化相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
hash-max-ziplist-entries | hash 数据结构优化参数 | 512 | 整数 | 可以 |
hash-max-ziplist-value | hash 数据结构优化参数 | 64 | 整数 | 可以 |
list-max-ziplist-entries | list 数据结构优化参数 | 512 | 整数 | 可以 |
list-max-ziplist-value | list 数据结构优化参数 | 64 | 整数 | 可以 |
set-max-intset-entries | set 数据结构优化参数 | 512 | 整数 | 可以 |
zset-max-ziplist-entries | zset 数据结构优化参数 | 128 | 整数 | 可以 |
zset-max-ziplist-value | zset 数据结构优化参数 | 64 | 整数 | 可以 |
hi1-sparse-max-bytes | HyperLogLog 数据结构优化参数 | 3000 | 整数 | 可以 |
7.复制相关配置
表 14-18 复制相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
slaveof | 指定当前从节点复制哪个主节点,参数:主节点的ip和port | 空 | ip和端口 | 不可以,但可以用 slaveof命令设置 |
repl-ping-slave-period | 主节点定期向从节点发送ping命令的周期 ,用于判定从节点是否存活。(单位:秒) | 10 | 整数 | 可以 |
repl-timeout | 主从节点复制超时时间(单位:秒) | 60 | 整数 | 可以 |
repl-backlog-size | 复制积压缓存区大小 | 1M | 整数 | 可以 |
repl-backlog-ttl | 主节点在没有从节点的情况下多长时间后释放复制积压缓存区空间 | 3600 | 整数 | 可以 |
slave-priority | 从节点的优先级 | 100 | 0-100 | 可以 |
min-slaves-to-write |
当主节点发现从节点数量小于min-slaves-to-write且延迟小于等于min-slaves-max-lag时, master停止写入操作 |
0 | 整数 | 可以 |
min-slaves-max-lag | 10 | 整数 | 可以 | |
slave-serve-stale-data |
当从节点与主节点连接中断时,如果此参数值设置为“yes”,从节点可以继续处理客户端的请求。 否则info和slaveof命令之外,拒绝的所有请求并统一回复"SYNC with master in progress" |
yes | yes|no | 可以 |
slave-read-only |
从节点是否开启只读模式,集群架构下 从节点默认读写都不可用,需要调用 readonly 命令开启只读模式 |
yes | yes|no | 可以 |
repl-disable-tcp-nodelay |
是否开启主从复制socket的 NO_DELAY选项: yes:Redis 会合并小的 TCP 包来节省带宽,但是这样增加同步延迟,造成主从数据不一致 no:主节点会立即发送同步数据,没有延迟 |
no | yes|no | 可以 |
repl-diskless-sync | 是否开启无盘复制 | no | yes|no | 可以 |
repl-diskless-sync-delay |
开启无盘复制后,需要延迟多少秒后进行创建RDB操作,一般用于同时加入多个从节点时, 保证多个从节点可共享 RDB |
5 | 整数 | 可以 |
8.客户端相关配置
表 14-19 客户端相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
maxclients | 最大客户端连接数 | 10000 | 整数 | 可以 |
client-output-buffer-limit | 客户端输出缓冲区限制 |
normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60 |
整数 | 可以 |
timeout | 客户端闲置多少秒后关闭连接(单位:秒) | 0 (永不关闭) | 整数 | 可以 |
tcp-keepalive | 检测TCP连接活性的周期(单位:秒) | 0 (不检测) | 整数 | 可以 |
9.安全相关配置
表 14-20 安全相关配置 | ||||
配置名 | 含义 | 默认值 | 可选值 | 可否支持config set配置热生效 |
requirepass | 密码 | 空 | 自定义 | 可以 |
bind | 绑定ip | 空 | 自定义 | 不可以 |
masterauth | 从节点需要配置的主节点密码 | 空 | 主节点的密码 | 可以 |