lmgsanm

每天学习一点,每天进步一点点…… Tomorrow is another beatifull day

导航

redis sentinel

sentinel哨兵可监控master状态,如master宕机,则会在slave中选举1台服务器成为新的master.

sentinel哨兵部署建立在主从基础上,一般情况下1主2从,redis-sentinel和redis-server可部署在同一台服务器上,也可分别部署在不同服务器上

实验环境使用3台服务器,redis-server和redis-sentinel部署在同一台服务器上

master  172.16.2.110  redis-server/redis-sentinel

slave1  172.16.2.111  redis-server/redis-sentinel

slave2  172.16.2.111  redis-server/redis-sentinel

1、redis-server配置

配置注意点:

  1、requirepass和requirepass最好配置成一样

  2、三台redis-server的slave-priority配置值最好配置成不一样,如果配置成一致,master宕机后,slave1会成为主;master恢复后,如果slave1宕机,slave2会被选举成主。如果三台redis-server的slave-priority的配置不一样,则master宕机,剩余的slave会选择slave-priority较小的值为master。

172.16.2.110(原始配置)

 1 bind 0.0.0.0
 2 protected-mode no
 3 port 6379
 4 tcp-backlog 511
 5 timeout 0
 6 tcp-keepalive 300
 7 daemonize no
 8 supervised no
 9 pidfile "/var/run/redis_6379.pid"
10 loglevel notice
11 logfile ""
12 databases 16
13 always-show-logo yes
14 save 900 1
15 save 300 10
16 save 60 10000
17 stop-writes-on-bgsave-error yes
18 rdbcompression yes
19 rdbchecksum yes
20 dbfilename "dump.rdb"
21 dir "/usr/local/redis/conf"
22 slave-serve-stale-data yes
23 slave-read-only yes
24 repl-diskless-sync no
25 repl-diskless-sync-delay 5
26 repl-disable-tcp-nodelay no
27 slave-priority 100
28 lazyfree-lazy-eviction no
29 lazyfree-lazy-expire no
30 lazyfree-lazy-server-del no
31 slave-lazy-flush no
32 appendonly no
33 appendfilename "appendonly.aof"
34 appendfsync everysec
35 no-appendfsync-on-rewrite no
36 auto-aof-rewrite-percentage 100
37 auto-aof-rewrite-min-size 64mb
38 aof-load-truncated yes
39 aof-use-rdb-preamble no
40 lua-time-limit 5000
41 slowlog-log-slower-than 10000
42 slowlog-max-len 128
43 latency-monitor-threshold 0
44 notify-keyspace-events ""
45 hash-max-ziplist-entries 512
46 hash-max-ziplist-value 64
47 list-max-ziplist-size -2
48 list-compress-depth 0
49 set-max-intset-entries 512
50 zset-max-ziplist-entries 128
51 zset-max-ziplist-value 64
52 hll-sparse-max-bytes 3000
53 activerehashing yes
54 client-output-buffer-limit normal 0 0 0
55 client-output-buffer-limit slave 256mb 64mb 60
56 client-output-buffer-limit pubsub 32mb 8mb 60
57 hz 10
58 aof-rewrite-incremental-fsync yes
59 
60 requirepass "test"
61 masterauth "test"

 

172.16.2.111

 1 bind 0.0.0.0
 2 protected-mode no
 3 port 6379
 4 tcp-backlog 511
 5 timeout 0
 6 tcp-keepalive 300
 7 daemonize no
 8 supervised no
 9 pidfile "/var/run/redis_6379.pid"
10 loglevel notice
11 logfile ""
12 databases 16
13 always-show-logo yes
14 save 900 1
15 save 300 10
16 save 60 10000
17 stop-writes-on-bgsave-error yes
18 rdbcompression yes
19 rdbchecksum yes
20 dbfilename "dump.rdb"
21 dir "/usr/local/redis/conf"
22 slave-serve-stale-data yes
23 slave-read-only yes
24 repl-diskless-sync no
25 repl-diskless-sync-delay 5
26 repl-disable-tcp-nodelay no
27 slave-priority 100
28 lazyfree-lazy-eviction no
29 lazyfree-lazy-expire no
30 lazyfree-lazy-server-del no
31 slave-lazy-flush no
32 appendonly no
33 appendfilename "appendonly.aof"
34 appendfsync everysec
35 no-appendfsync-on-rewrite no
36 auto-aof-rewrite-percentage 100
37 auto-aof-rewrite-min-size 64mb
38 aof-load-truncated yes
39 aof-use-rdb-preamble no
40 lua-time-limit 5000
41 slowlog-log-slower-than 10000
42 slowlog-max-len 128
43 latency-monitor-threshold 0
44 notify-keyspace-events ""
45 hash-max-ziplist-entries 512
46 hash-max-ziplist-value 64
47 list-max-ziplist-size -2
48 list-compress-depth 0
49 set-max-intset-entries 512
50 zset-max-ziplist-entries 128
51 zset-max-ziplist-value 64
52 hll-sparse-max-bytes 3000
53 activerehashing yes
54 client-output-buffer-limit normal 0 0 0
55 client-output-buffer-limit slave 256mb 64mb 60
56 client-output-buffer-limit pubsub 32mb 8mb 60
57 hz 10
58 aof-rewrite-incremental-fsync yes
59 
60 requirepass "test"
61 masterauth "test"
62 slaveof 172.16.2.110 6379

 

172.16.2.112

 1 bind 0.0.0.0
 2 protected-mode no
 3 port 6379
 4 tcp-backlog 511
 5 timeout 0
 6 tcp-keepalive 300
 7 daemonize no
 8 supervised no
 9 pidfile "/var/run/redis_6379.pid"
10 loglevel notice
11 logfile ""
12 databases 16
13 always-show-logo yes
14 save 900 1
15 save 300 10
16 save 60 10000
17 stop-writes-on-bgsave-error yes
18 rdbcompression yes
19 rdbchecksum yes
20 dbfilename "dump.rdb"
21 dir "/usr/local/redis/conf"
22 slave-serve-stale-data yes
23 slave-read-only yes
24 repl-diskless-sync no
25 repl-diskless-sync-delay 5
26 repl-disable-tcp-nodelay no
27 slave-priority 100
28 lazyfree-lazy-eviction no
29 lazyfree-lazy-expire no
30 lazyfree-lazy-server-del no
31 slave-lazy-flush no
32 appendonly no
33 appendfilename "appendonly.aof"
34 appendfsync everysec
35 no-appendfsync-on-rewrite no
36 auto-aof-rewrite-percentage 100
37 auto-aof-rewrite-min-size 64mb
38 aof-load-truncated yes
39 aof-use-rdb-preamble no
40 lua-time-limit 5000
41 slowlog-log-slower-than 10000
42 slowlog-max-len 128
43 latency-monitor-threshold 0
44 notify-keyspace-events ""
45 hash-max-ziplist-entries 512
46 hash-max-ziplist-value 64
47 list-max-ziplist-size -2
48 list-compress-depth 0
49 set-max-intset-entries 512
50 zset-max-ziplist-entries 128
51 zset-max-ziplist-value 64
52 hll-sparse-max-bytes 3000
53 activerehashing yes
54 client-output-buffer-limit normal 0 0 0
55 client-output-buffer-limit slave 256mb 64mb 60
56 client-output-buffer-limit pubsub 32mb 8mb 60
57 hz 10
58 aof-rewrite-incremental-fsync yes
59 
60 requirepass "test"
61 masterauth "test"
62 slaveof 172.16.2.110 6379

 

2、redis-sentinel配置

配置注意点

  1、sentinel auth-pass mymaster配置与redis.conf中的masterauth和requirepass配置一样

  2、sentinel monitor mymaster配置的master服务器IP地址必须是redis-server的master服务器地址

172.16.2.110

1 bind 0.0.0.0
2 port 26379
3 dir "/tmp"
4 sentinel deny-scripts-reconfig yes
5 sentinel monitor mymaster 172.16.2.110 6379 2
6 sentinel down-after-milliseconds mymaster 3000
7 sentinel failover-timeout mymaster 10000
8 sentinel auth-pass mymaster test

 

172.16.2.111

1 bind 0.0.0.0
2 port 26379
3 dir "/tmp"
4 sentinel deny-scripts-reconfig yes
5 sentinel monitor mymaster 172.16.2.110 6379 2
6 sentinel down-after-milliseconds mymaster 3000
7 sentinel failover-timeout mymaster 10000
8 sentinel auth-pass mymaster test

 

172.16.2.112

bind 0.0.0.0
port 26379
dir "/tmp"
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 172.16.2.110 6379 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster test

 3、说明

  1. master宕机后的切换过程中,sentinel会去修改redis.conf配置及sentinel.conf配置。重启redis过程中,需要注意哪台是master服务器。
  2. redis重启过程中,最好从slave-priority配置值最小的开始启动。
  3. master的配置slave-priority最好是最小,这样就能一定程度上保持重启后master服务器仍然不变

4、系统参数调优

  1. echo never > /sys/kernel/mm/transparent_hugepage/enabled
  2. echo vm.overcommit_memory=1 >> /etc/sysctl.conf && sysctl -p
  3. sysctl -w net.ipv4.tcp_timestamps=1
  4. sysctl -w net.ipv4.tcp_tw_recycle=1
  5. secho 512> /proc/sys/net/core/somaxconn
  6. net.ipv4.conf.lo.arp_ignore = 1
  7. net.ipv4.conf.lo.arp_announce = 2
  8. net.ipv4.conf.all.arp_ignore = 1
  9. net.ipv4.conf.all.arp_announce = 2
  10. echo "* soft nofile 65535" >> /etc/security/limits.conf
  11. echo "* hard nofile 65535" >> /etc/security/limits.conf
  12. echo "*          soft    nproc     10240"  >> /etc/security/limits.d/20-nproc.conf

posted on 2018-08-13 21:46  lmgsanm  阅读(263)  评论(0)    收藏  举报