-
本文目标
本文记录redis集群单哨兵的搭建和测试。
-
安装准备
centos版本:6.7
redis版本:3.2.3
安装方式:源码安装
-
操作步骤
6379为主节点,6479和6579为从节点; 26379为哨兵节点。
1、创建集群目录
cd /usr/local
mkdir redis_cluster
mkdir redis_cluster/master_6379
mkdir redis_cluster/slave_6479
mkdir redis_cluster/slave_6579
2、redis配置
2.1 master
主节点配置
vi ./redis_cluster/master_6379/redis.conf
daemonize yes
port 6379
requirepass enen
masterauth enen
slave-read-only yes
对应哨兵节点配置
vi ./redis_cluster/master_6379/6379-sentinel.conf
port 26379
sentinel monitor mymaster 192.168.186.92 6379 2
sentinel auth-pass mymaster enen
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 900000
2.2 slave-one
从节点1配置
vi ./redis_cluster/slave_6479/redis.conf
daemonize yes
port 6479
requirepass enen
masterauth enen
slave-read-only yes
slaveof 192.168.186.92 6379
2.3 slave-second
从节点2配置
vi ./redis_cluster/slave_6579/redis.conf
daemonize yes
port 6579
requirepass enen
masterauth enen
slave-read-only yes
slaveof 192.168.186.92 6379
3、启动集群
注意:首次构建sentinel环境时,必须首先启动master。
启动master和master-sentinel:
redis-server /usr/local/redis_cluster/master-6379/redis.conf
redis-sentinel /usr/local/redis_cluster/master-6379/6379-sentinel.conf
克隆会话,启动slave1
redis-server /usr/local/redis_cluster/slave-6479/redis.conf
克隆会话,启动slave2
redis-server /usr/local/redis_cluster/slave-6579/redis.conf
4、测试
4.1正常情况
查看master的状态
192.168.186.92:6379> info Replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.186.92,port=6479,state=online,offset=393,lag=1
slave1:ip=192.168.186.92,port=6579,state=online,offset=393,lag=0
master_repl_offset:393
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:392
查看slave的状态
192.168.186.92:6479> info Replication
# Replication
role:slave
master_host:192.168.186.92
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:449
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
4.2 slave宕机
关闭6479节点。
哨兵节点的反应
1588:X 24 Feb 22:51:33.337 # +sdown slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
同时主节点少了一个从节点
192.168.186.92:6379> info Replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.186.92,port=6579,state=online,offset=1149,lag=1
master_repl_offset:1149
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:1148
4.3 从节点恢复
重启6479节点。
哨兵节点的反应
1588:X 24 Feb 22:57:03.912 * +reboot slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
1588:X 24 Feb 22:57:03.988 # -sdown slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
4.4主节点宕机
[root@itsecond src]# redis-sentinel /usr/local/redis_cluster/master_6379/6379-sentinel.conf
2959:X 26 Feb 19:23:32.644 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.3 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in sentinel mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 26379
| `-._ `._ / _.-' | PID: 2959
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
2959:X 26 Feb 19:23:32.645 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2959:X 26 Feb 19:23:32.645 # Sentinel ID is 9c48c3c2e175a32573e2b26fc25cc11d68c690ed
2959:X 26 Feb 19:23:32.645 # +monitor master mymaster 192.168.186.92 6379 quorum 1
2959:X 26 Feb 19:23:32.646 * +slave slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:24:52.902 * +slave slave 192.168.186.92:6579 192.168.186.92 6579 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.131 # +sdown master mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.131 # +odown master mymaster 192.168.186.92 6379 #quorum 1/1
2959:X 26 Feb 19:25:34.131 # +new-epoch 1
2959:X 26 Feb 19:25:34.131 # +try-failover master mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.133 # +vote-for-leader 9c48c3c2e175a32573e2b26fc25cc11d68c690ed 1
2959:X 26 Feb 19:25:34.133 # +elected-leader master mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.133 # +failover-state-select-slave master mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.233 # +selected-slave slave 192.168.186.92:6579 192.168.186.92 6579 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.233 * +failover-state-send-slaveof-noone slave 192.168.186.92:6579 192.168.186.92 6579 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.306 * +failover-state-wait-promotion slave 192.168.186.92:6579 192.168.186.92 6579 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.898 # +promoted-slave slave 192.168.186.92:6579 192.168.186.92 6579 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.898 # +failover-state-reconf-slaves master mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:34.996 * +slave-reconf-sent slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:35.990 * +slave-reconf-inprog slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:35.990 * +slave-reconf-done slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:36.079 # +failover-end master mymaster 192.168.186.92 6379
2959:X 26 Feb 19:25:36.079 # +switch-master mymaster 192.168.186.92 6379 192.168.186.92 6579
2959:X 26 Feb 19:25:36.080 * +slave slave 192.168.186.92:6479 192.168.186.92 6479 @ mymaster 192.168.186.92 6579
2959:X 26 Feb 19:25:36.080 * +slave slave 192.168.186.92:6379 192.168.186.92 6379 @ mymaster 192.168.186.92 6579
2959:X 26 Feb 19:26:06.081 # +sdown slave 192.168.186.92:6379 192.168.186.92 6379 @ mymaster 192.168.186.92 6579
从上面可以看出,当主节点6379宕机后,选举产生6579为新的主节点。
4.5主节点恢复
2959:X 26 Feb 19:29:12.167 # -sdown slave 192.168.186.92:6379 192.168.186.92 6379 @ mymaster 192.168.186.92 6579
2959:X 26 Feb 19:29:22.153 * +convert-to-slave slave 192.168.186.92:6379 192.168.186.92 6379 @ mymaster 192.168.186.92 6579
来源:oschina
链接:https://my.oschina.net/u/3783046/blog/1623419