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> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章