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)FLUSHALLFLUSHDB命令底层是否使用lazy free模式

参数

slave-lazy-flush

默认值

no

可选值

yes或no

是否可动态配置