Redis_10_Redis配置参数
- 配置参数
- 客户端
- 内存
- RDB
- AOF
- 慢查询
- 主从复制
- 哨兵
- 集群
- 优化
配置参数
(1)是否以守护进程运行
参数 | daemonize |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 否 |
(2)占用端口号
参数 | port |
默认值 | 6379 |
可选值 | 任意正整数 |
是否可动态配置 | 否 |
(3)Redis进程的工作目录
参数 | dir |
默认值 | ./ |
可选值 | 任意目录 |
是否可动态配置 | 是 |
1)RDB、AOF和日志文件默认均存储在该目录下;
4)日志级别
参数 | loglevel |
默认值 | notice |
可选值 | debug或verbose或notice或warning |
是否可动态配置 | 是 |
(5)日志文件名
参数 | logfile |
默认值 | |
可选值 | 建议以“IP:端口号”格式命名 |
是否可动态配置 | 否 |
(6)可用数据库数
参数 | databases |
默认值 | 16 |
可选值 | 任意整数 |
是否可动态配置 | 否 |
(7)监听指定套接字
参数 | unixsocket |
默认值 | |
可选值 | 任意套接字文件 |
是否可动态配置 | 否 |
(8)存储Redis进程PID的文件
参数 | pidfile |
默认值 | /var/run/redis.pid |
可选值 | 任意文件 |
是否可动态配置 | 否 |
(9)Lua脚本的超时时间(毫秒)
参数 | lua-time-limit |
默认值 | 5000 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(10)TCP backlog文件大小
参数 | tcp-backlog |
默认值 | 511 |
可选值 | 任意正整数 |
是否可动态配置 | 否 |
(11)是否激活重置哈希
参数 | activerehashing |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
客户端
(1)最多可连接客户端数量
参数 | maxclients |
默认值 | 10000 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(2)客户端输出缓冲区的大小
参数 | client-output-buffer-limit |
默认值 | 普通节点:0 0 0 从节点:268435456 67108864 60 频道节点:33554432 8388608 60 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(3)客户端限制多久后断开连接(秒)
参数 | timeout |
默认值 | 0 (永不关闭) |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(4)检测TCP连接活性的周期(秒)
参数 | tcp-keepalive |
默认值 | 0 (永不检测) |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
内存
(1)最大可用内存量(字节)
参数 | maxmemroy |
默认值 | 0 (无限制) |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
1)指定是Redis实际使用的内存量(实际消耗内存可能大于该值);
2)Redis默认无限使用系统内存(建议Redis进程均设置该参数);
(2)内存不足时的淘汰策略
参数 | maxmemory-policy |
默认值 | noeviction |
可选值 | 1)volatile-lru:用LRU算法删除过期键值对 2)allkeys-lru:用LRU算法删除所有键值对 3)volatile-random:随机删除过期键值对 4)allkeys-random:随机删除键值对 5)volatile-ttl:删除即将到期的键值对 6)noeviction:不做任何处理 |
是否可动态配置 | 是 |
(3)检测LRU采样数
参数 | maxmemory-samples |
默认值 | 5 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
RDB
(1)RDB保存条件
参数 | save |
默认值 | save 900 1 save 300 10 save 60 10000 |
可选值 | |
是否可动态配置 | 是 |
1)若未配置该值,则代表不使用RDB
(2)RDB文件名
参数 | dbfilename |
默认值 | dump.rdb |
可选值 | 任意文件名 |
是否可动态配置 | 是 |
(3)是否压缩RDB文件
参数 | rdbcompression |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
(4)RDB文件是否使用校验和
参数 | rdbchecksum |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
(5)BGSAVE命令执行错误时,是否停止Redis接收写请求
参数 | stop-writes-on-bgsave-error |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
AOF
(1)是否开启AOF持久化
参数 | appendonly |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |
(2)AOF同步磁盘频率
参数 | appendfsync |
默认值 | everysec |
可选值 | 1)always:立刻调用fsync 2)everysec:先调用write后通过其他线程调用fsync 3)no:写入aof_buf后,只调用write |
是否可动态配置 | 是 |
(3)AOF文件名
参数 | appendfilename |
默认值 | appendonly.aof |
可选值 | 任意文件名 |
是否可动态配置 | 否 |
(4)加载AOF文件时,是否忽略AOF文件的不完整
参数 | aof-load-truncated |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
(5)重写期间是否可执行fsync(暂时存入缓冲区中)
参数 | no-appendfsync-on-rewrite |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |
(6)AOF触发重写条件的最小大小(兆)
参数 | auto-aof-rewrite-min-size |
默认值 | 64m |
可选值 | 任意正整数(需指定单位) |
是否可动态配置 | 是 |
(7)AOF文件的增长比列触发重写
参数 | auto-aof-rewrite-percentage |
默认值 | 100 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(8)AOF重写过程种,是否采取增量文件同步策略
参数 | aof-rewrite-incremen-tal-fsync |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
慢查询
(1)慢查询标准(微妙)
参数 | slowlog-log-slower-than |
默认值 | 10000 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(2)最多可记录多少条慢查询
参数 | slowlog-max-len |
默认值 | 128 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(3)Redis服务内存延迟监控
参数 | latency-monitor-threshold |
默认值 | 0 (关闭) |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
主从复制
(1)指定从节点的主节点
参数 | slaveof |
默认值 | |
可选值 | IP:端口 |
是否可动态配置 | 否 (但可通过SLAVEOF命令实现) |
(2)主节点定期向从节点发送Ping命令的周期(秒)
参数 | repl-ping-slave-period |
默认值 | 10 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(3)主从节点复制超时时间(秒)
参数 | repl-timeout |
默认值 | 60 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(4)复制积压缓存区大小
参数 | repl-backlog-size |
默认值 | 1M |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(5)主节点在与从节点断开后多久释放复制积压缓冲区
参数 | repl-backlog-ttl |
默认值 | 3600 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
(6)从节点的优先级
参数 | slave-priority |
默认值 | 100 |
可选值 | 0~100 |
是否可动态配置 | 是 |
(7)从节点最少数量(不满足则主节点停止写入操作)
参数 | min-slaves-to-write |
默认值 | 0 |
可选值 | 任意整数 |
是否可动态配置 | 是 |
(8)主从节点的最小延迟(不满足则主节点停止写入操作)
参数 | min-slaves-max-lag |
默认值 | 10 |
可选值 | 任意整数 |
是否可动态配置 | 是 |
(9)主从节点断开后,从节点是否仍可处理客户端请求
参数 | slave-serve-stale-data |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
(10)从节点是否以只读模式运行
参数 | slave-read-only |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
1)集群模式下从节点默认读写均不可用,只能通过READONLY开启只读模式
(11)主从节点间是否开启延迟发送策略
参数 | repl-disable-tcp-nodelay |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |
(12)是否开启无盘复制
参数 | repl-diskless-sync |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |
(13)开启无盘复制后,延迟多长时间进行RDB操作(秒)
参数 | repl-diskless-sync-delay |
默认值 | 5 |
可选值 | 任意整数 |
是否可动态配置 | 是 |
哨兵
(1)指定该Sentinel节点监控的Redis主节点
sentinel monitor 主节点别名 主节点IP 主节点端口 票数N
1)票数N:将该Redis主节点标记为不可达时,至少需N个Sentinel节点同意;
2)N建议设置为:Sentinel集合中含有Sentinel节点数的一半加一;
(2)指定该Sentinel节点发送ping命令周期
sentinel down-after-milliseconds 主节点别名 数值N
1)数值N:Sentinle每隔N毫秒发送一次ping命令;
//Sentinle节点通过发送ping命令至Redis节点和其他Sentinle判断是否可达
(3)指定故障转移后可复制的从节点个数
sentinel parallel-syncs 主节点别名 数值N
1)数值N:故障转移后只能有N个从节点可向新Redis主节点发送复制请求;
(4)指定故障转移的超时时间
sentinel failover-timeout 主节点别名 数值N
1)数值N:进行故障转移的4个阶段所用时间都需在N毫秒内;
2)若选择从节点阶段超时,将N翻倍继续执行;
3)若晋升从节点阶段超时,则重新选择从节点;
(5)指定该Sentinel节点监控的Redis主节点密码
sentinel auth-pass 主节点别名 密码
1)若Redis主节点未设置密码,可省略该参数;
(6)指定故障转移时发生警告级别的事件时,所执行的脚本文件
sentinel notificatio-script 主节点别名 脚本路径
1)会同时向该脚本文件发送相应事件参数;
//常见的事件如:-sdown
(客观下线)、-odown
(主观下线)
(7)指定故障转移结束后执行的脚本文件
sentinel client-reconfig-script 主节点别名 脚本路径
1)会同时向该脚本文件发送转移结果;
2)可执行脚本文件必须为Shell脚本文件,且具有可执行权限;
3)0是正常退出状态码,1是重试退出状态码,2是强制退出状态码;
4)脚本文件的执行事件不可超过60秒,否则将强制结束该脚本文件;
//结果内容:主节点别名 leader或observer 状态 原主节点IP 原主节点端口 新主节点IP 新主节点端口
集群
(1)是否开启集群模式
参数 | cluster-enabled |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 否 |
(2)记录该节点的集群状态
参数 | cluster-config-file |
默认值 | nodes.conf |
可选值 | “节点名-端口号.conf”格式 (防止节点彼此覆盖) |
是否可动态配置 | 否 |
1)若启动时已存在该文件,则默认使用该配置文件初始化节点的集群信息
2)该文件由Redis Cluster自动维护(不可手动修改)
(3)是否分配完16384个槽后集群才可访问
参数 | cluster-require-full-coverage |
默认值 | yes |
可选值 | yes或no |
是否可动态配置 | 是 |
(4)集群节点的超时时间(毫秒)
参数 | cluster-node-timeout |
默认值 | 15000 |
可选值 | 任意正整数 |
是否可动态配置 | 是 |
1)配置该参数时需考虑Gossip的消息发送频率和节点同步实时性;
(5)从节点的有效因子
参数 | cluster-slave-validity-factor |
默认值 | 10 |
可选值 | 任意整数 (0代表从节点永不过期) |
是否可动态配置 | 是 |
(6)主从节点切换时最少需要多少个从节点
参数 | cluster-migration-barrier |
默认值 | 1 |
可选值 | 任意整数 |
是否可动态配置 | 是 |
优化
(1)指定连接Redis时所需密码
参数 | requirepass |
默认值 | |
可选值 | |
是否可动态配置 | 是 |
1)Redis传输密码的方式为明文传输;
(2)Redis绑定IP
参数 | bind |
默认值 | |
可选值 | |
是否可动态配置 | 否 |
(3)从节点配置主节点的密码
参数 | masterauth |
默认值 | |
可选值 | 主节点密码 |
是否可动态配置 | 是 |
(4)内存淘汰时,是否使用lazy free模式删除键值对
参数 | lazyfree-lazy-eviction |
默认值 | no |
可选值 | yes |
是否可动态配置 | 是 |
(5)是否使用lazy free模式删除过期键值对
参数 | lazyfree-lazy-expire |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |
(6)底层调用删除键值对是否为lazy free模式
参数 | lazyfree-lazy-server-del |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |
(7)FLUSHALL
和FLUSHDB
命令底层是否使用lazy free模式
参数 | slave-lazy-flush |
默认值 | no |
可选值 | yes或no |
是否可动态配置 | 是 |