总体配置相关参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
daemonize | 是否是守护进程 | no | yes|no | 否 |
port | 端口号 | 6379 | 整数 | 否 |
loglevel | 日志级别 | notice | debug|verbose|notice|warning | 是 |
logfile | 日志文件名 | 空 | 自定义,建议以端口号为名 | 否 |
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-perioid | 看门狗,用于诊断Redis的延迟问题,些参数是检查周期。此参数需要在运行时配置才能生效。 | 0 | 整数 | 是 |
activerehashing | 指定是否激活重置哈希 | yes | yes|no | 是 |
dir | 工作目录(aof、rdb、日志文件都存放在此目录) | ./(当前目录) | 自定义 | 是 |
内存相关参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
maxmemory | 最大可用内存(单位字节) | 0(没有限制) | 整数 | 是 |
maxmemory-policy | 内存不够时,淘汰策略 | noeviction | volatile-lru->用lru算法删除过期的键值allkeys-lrt->用lru算法删除所有键值volatile-random->随机删除过期的键值allkeys-random->随机删除任何键值volatile-ttl->删除最近要到期的键值noeviction->不删除键 | 是 |
maxmemory-samples | 检测LRU采样数 | 5 | 整数 | 是 |
AOF相关配置参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 | |
appendonly | 是否开启AOF持久化模式 | no | yes|no | 是 | |
appendfsync | AOF同步磁盘频率 | everysec | always|everysec|no | 是 | |
appendfilename | AOF文件名 | appendonly.aof | appendonly-{port}.aof | 否 | |
aof-load-truncated | 加载AOF文件时,是否忽略AOF文件不完整的情况,让Redis正常启动 | yes | yes|no | 是 | |
no-appendfsync-no-rewrite | 设置为yes表示rewrite期间对新写操作不fsync,暂时存在缓冲区,等rewrite完成后再写入 | no | yes|no | 是 | |
auto-aof-rewrite-min-size | 触发rewrite的AOF文件最小阀值,单位MB | 64mb | 整数+mb | 是 | |
auto-aof-rewrite-percentage | 触发rewrite的AOF文件的增长比例条件 | 100 | 整数 | 是 | |
aof-rewrite-incremental-fsync | AOF重写过程中,是否采取增量文件同步策略 | yes | yes|no | 是 |
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 | 是 |
慢查询相关配置参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
slowlog-log-slower-than | 慢查询被记录的阀值,单位微秒 | 10000 | 整数 | 是 |
slowlog-max-len | 最多记录慢查询的条数 | 128 | 整数 | 是 |
latency-monitor-threshold | Redis服务内存延迟监控 | 0(关闭) | 整数 | 是 |
数据结构优化配置
配置名 | 含义 | 默认值 | 可选值 | 是否支持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-insert-entries | set数据结构优化参数 | 512 | 整数 | 是 |
zset-max-ziplist-entries | zset数据结构优化参数 | 128 | 整数 | 是 |
zset-max-ziplist-value | zset数据结构优化参数 | 64 | 整数 | 是 |
hll-sparse-max-bytes | HyperLogLog数据结构优化参数 | 3000 | 整数 | 是 |
复制相关配置
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
slaveof | 指定当前从节点复制哪个主节点,参数:主节点ip和port | 空 | ip port | 否,但可以用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-server-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 | 整数 | 是 |
客户端相关配置
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
maxclients | 最大客户端连接数 | 10000 | 整数 | 是 |
client-output-buffer-limit | 客户端输出缓冲区限制 | normal 0 0 0 slave 256mb 64mb 60 pubsub 32mb 8mb 60 | 整数 | 是 |
timeout | 客户端闲置多少秒后关闭连接,单位秒 | 0(永不关闭) | 整数 | 是 |
tcp-keepalive | 检测TCP连接活性的周期,单位秒 | 0(不检测) | 整数 | 是 |
安全相关配置参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
requirepass | 密码 | 空 | 自定义 | 是 |
bind | 绑定IP | 127.0.0.1 | 自定义 | 否 |
masterauth | 从节点需要配置的主节点密码 | 空 | 主节点密码 | 是 |
哨兵相关配置参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
sentinel monitor <master-name> <ip> <port> <quorum> | 定义监控的主节点名、ip、port、主观下线票数 | sentinel monitor mymaster 127.0.0.1 6379 2 | 自定义masterName实际的ip port 票数 | 支持<quorum> |
sentinel down-after-milliseconds <master-name> <times> | sentinel判定节点不可达的毫秒数 | sentinel down-after-milliseconds mymaster 30000 | 整数 | 支持 |
sentinel parallel-syncs <master-name> <nums> | 在执行故障转移时,最多有多少个从服务器同时对新的主服务器进行同步 | sentinel parallel-syncs mymaster 1 | 大于0,不超过从服务器个数 | 支持 |
sentinel failover-timeout <master-name> <times> | 故障迁移超时时间 | sentinel failover-timeout mymaster 180000 | 整数 | 支持 |
sentinel auth-pass <master-name> <passwd> | 主节点密码 | 空 | 主节点密码 | 支持 |
sentinel notification-script <master-name> <scriptpath> | 故障转移期间脚本通知 | 空 | 脚本文件路径 | 支持 |
sentinel client-reconfig-script <master-name> <script-path> | 故障转移成功后脚本通知 | 空 | 脚本文件路径 | 支持 |
Cluster相关配置参数
配置名 | 含义 | 默认值 | 可选值 | 是否支持config set配置热生效 |
cluster-node-time | 集群节点超时时间,单位毫秒 | 15000 | 整数 | 是 |
cluster-migration-barrier | 主从节点切换需要的从节点数最小个数 | 1 | 整数 | 是 |
cluster-slave-validity-factor | 从节点有效性判断因子,当从节点与主节点最后通信时间超过(cluster-node-timeout*slave-validity-factor)+repl-ping-slave-period时,对应从节点不具备故障转移资格,防止断线时间过长的从节点进行故障转移,设置为0表示从节点永不过期 | 10 | 整数 | 是 |
cluster-require-full-coverage | 集群是否需要所有的slot都分配给在线节点,才能正常访问 | yes | yes|no | 是 |
cluster enabled | 是否开启集群模式 | no | yes|no | 否 |
cluster-config-file | 集群配置文件名称 | nodes.conf | nodes-{port}.conf | 否 |
本文是根据《Redis开发与运维》一书整理的关于Redis的相关配置参数,随着Redis版本的更新,参数可能有所调整,最好的解释还是来自官方文档或安装包中redis.conf配置文件中对于参数的解释。