redis集群--单哨兵模式搭建

  • 本文目标

本文记录redis集群单哨兵的搭建和测试。redis

  • 安装准备

centos版本:6.7centos

redis版本:3.2.3bash

安装方式:源码安装测试

  • 操做步骤

    6379为主节点,6479和6579为从节点; 26379为哨兵节点。ui

一、建立集群目录

cd /usr/local
mkdir redis_cluster
mkdir redis_cluster/master_6379
mkdir redis_cluster/slave_6479
mkdir redis_cluster/slave_6579

二、redis配置

2.1 master

主节点配置spa

vi ./redis_cluster/master_6379/redis.confcode

daemonize yes
port 6379
requirepass enen
masterauth enen
slave-read-only yes

对应哨兵节点配置server

vi ./redis_cluster/master_6379/6379-sentinel.confip

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

 

三、启动集群

注意:首次构建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.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
相关文章
相关标签/搜索