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
相關文章
相關標籤/搜索