redis主從+哨兵服務

主機規劃

主機名 IP地址 角色
sentinel1 192.168.124.5 redis主
sentinel2 192.168.124.6 redis從
sentinel1 192.168.124.5 哨兵1
sentinel2 192.168.124.6 哨兵2

安裝環境

系統版本:Red Hat Enterprise Linux Server release 6.5
數據庫版本:redis-4.0.8

主從搭建

參考主從搭建過程

查看狀態

[root@sentinel1 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.5:6379          0.0.0.0:*                   LISTEN      64520/redis-server 
[root@sentinel2 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.6:6379          0.0.0.0:*                   LISTEN      62781/redis-server

哨兵模式搭建(哨兵一)

[root@sentinel1 redis-4.0.8]# vim sentinel.conf
bind 0.0.0.0		##表示本機所有接口
port 26379			##哨兵端口
sentinel monitor mymaster 192.168.124.5 6379 1	##監聽地址
:wq

哨兵模式搭建(哨兵二)

[root@sentinel2 redis-4.0.8]# vim sentinel.conf
bind 0.0.0.0		##表示本機所有接口
port 26379			##哨兵端口
sentinel monitor mymaster 192.168.124.5 6379 1	##監聽地址
sentinel auth-pass mymaster 123456		##密碼
:wq

本文是帶密碼驗證的主從,所以sentinel auth-pass是可選項

啓動哨兵(哨兵一)

[root@sentinel1 redis-4.0.8]# redis-sentinel sentinel.conf
...
63505:X 06 May 19:44:26.698 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set t
o the lower value of 128.63505:X 06 May 19:44:26.700 # Sentinel ID is b6b70b66a513661b07746ac6b0ff5f1b72aaad62
63505:X 06 May 19:44:26.700 # +monitor master mymaster 192.168.124.5 6379 quorum 1
63505:X 06 May 19:44:26.701 * +slave slave 192.168.124.6:6379 192.168.124.6 6379 @ mymaster 192.168.124.5 6379

啓動哨兵(哨兵二)

[root@sentinel2 redis-4.0.8]# redis-sentinel sentinel.conf
...
60706:X 06 May 19:44:51.026 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set t
o the lower value of 128.60706:X 06 May 19:44:51.029 # Sentinel ID is 1c31490ed84a4f6324831b664b06509729ed88f3
60706:X 06 May 19:44:51.029 # +monitor master mymaster 192.168.124.5 6379 quorum 1
60706:X 06 May 19:44:51.030 * +slave slave 192.168.124.6:6379 192.168.124.6 6379 @ mymaster 192.168.124.5 6379
60706:X 06 May 19:44:51.046 * +sentinel sentinel b6b70b66a513661b07746ac6b0ff5f1b72aaad62 192.168.124.5 26379 @ mymaster 192.168.124.5
 6379
  • 仔細觀察倆個哨兵輸出的信息是不一樣的

查看狀態(哨兵一)

[root@sentinel1 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.5:6379          0.0.0.0:*                   LISTEN      64520/redis-server  
tcp        0      0 0.0.0.0:26379               0.0.0.0:*                   LISTEN      63505/redis-sentine

查看狀態(哨兵二)

[root@sentinel2 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.6:6379          0.0.0.0:*                   LISTEN      62781/redis-server  
tcp        0      0 0.0.0.0:26379               0.0.0.0:*                   LISTEN      60706/redis-sentine

驗證

[root@sentinel1 ~]# redis-cli -h 192.168.124.5 -p 6379 
192.168.124.5:6379>info replication
# Replication
role:master					##主
connected_slaves:1			##從的個數
slave0:ip=192.168.124.6,port=6379,state=online,offset=479424,lag=1
master_replid:b5f57551f94e53d2eb6888d38e1967786617b1ce
master_replid2:834c0d7d8b2acf37cae31cd0c2998bb7c43e21d9
master_repl_offset:479565
second_repl_offset:225731
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:204207
repl_backlog_histlen:275359
192.168.124.5:6379> 
[root@sentinel2 ~]# redis-cli -h 192.168.124.6 -p 6379
192.168.124.6:6379> info replication
# Replication
role:slave						##從
master_host:192.168.124.5		##主的地址
master_port:6379				##端口
master_link_status:up			##狀態
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:490111
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:b5f57551f94e53d2eb6888d38e1967786617b1ce
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:490111
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:326005
repl_backlog_histlen:164107
  • 關閉redis主
[root@sentinel1 ~]# /etc/init.d/redis_6379 stop
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
##哨兵顯示主掛了,把192.168.124.6提升爲主
63505:X 06 May 20:47:08.342 * +slave slave 192.168.124.5:6379 192.168.124.5 6379 @ mymaster 192.168.124.6 6379
63505:X 06 May 20:47:18.344 # +sdown slave 192.168.124.5:6379 192.168.124.5 6379 @ mymaster 192.168.124.6 6379
  • 查看是否提升爲主
192.168.124.6:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:2942ecd77b7bf35b1f9eee3f584ca1c3fbf62102
master_replid2:b5f57551f94e53d2eb6888d38e1967786617b1ce
master_repl_offset:530825
second_repl_offset:513037
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:326005
repl_backlog_histlen:204821
192.168.124.6:6379> 
  • 接下來啓動之前掛掉的主機
[root@sentinel1 ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@sentinel1 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.5:6379          0.0.0.0:*                   LISTEN      68838/redis-server  
tcp        0      0 0.0.0.0:26379               0.0.0.0:*                   LISTEN      63505/redis-sentine
  • 查看狀態
##哨兵顯示192.168.124.5成爲192.168.124.6的從
63505:X 06 May 20:47:18.344 # +sdown slave 192.168.124.5:6379 192.168.124.5 6379 @ mymaster 192.168.124.6 6379
63505:X 06 May 20:51:36.674 # -sdown slave 192.168.124.5:6379 192.168.124.5 6379 @ mymaster 192.168.124.6 6379
  • 查看各個數據庫的狀態
[root@sentinel1 ~]# redis-cli -h 192.168.124.5 -p 6379
192.168.124.5:6379> info replication
# Replication
role:slave			##接替爲從
master_host:192.168.124.6
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:570383
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:2942ecd77b7bf35b1f9eee3f584ca1c3fbf62102
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:570383
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:551271
repl_backlog_histlen:19113
[root@sentinel2 ~]# redis-cli -h 192.168.124.6 -p 6379
192.168.124.6:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.124.5,port=6379,state=online,offset=585342,lag=0
master_replid:2942ecd77b7bf35b1f9eee3f584ca1c3fbf62102
master_replid2:b5f57551f94e53d2eb6888d38e1967786617b1ce
master_repl_offset:585342
second_repl_offset:513037
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:326005
repl_backlog_histlen:259338
192.168.124.6:6379> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章