Redis的复制(Master/Slave)、主从复制、读写分离 (下)

哨兵模式(就是反客为主的自动版)

  能够自动监控主机是否故障,如果故障了根据投票数自动将从机变成主机

  1创建哨兵文件

touch sentinel.conf
[root@localhost myredis]# ls -l
总用量 228
-rw-r--r--. 1 root root    55 7月  31 23:38 dump6379.rdb
-rw-r--r--. 1 root root    55 7月  31 23:38 dump6380.rdb
-rw-r--r--. 1 root root 41642 8月   1 08:33 redis6379.conf
-rw-r--r--. 1 root root 41642 7月  31 23:04 redis6380.conf
-rw-r--r--. 1 root root 41642 7月  31 23:11 redis6381.conf
-rw-r--r--. 1 root root 41612 7月  31 18:08 redis_aof.conf
-rw-r--r--. 1 root root 41611 7月  28 21:27 redis.conf
-rw-r--r--. 1 root root     0 8月   1 09:47 sentinel.conf

  2、给哨兵文件添加监听内容

sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1:这里的这个数字1,表示主机死掉以后slaver投票看让谁接替称为主机,谁票数多多谁是主机。

sentinel monitor host6379 127.0.0.1 6379 1

  3、启动哨兵

[root@localhost myredis]# redis-sentinel /myredis/sentinel.conf 
22600:X 01 Aug 09:55:20.908 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.7 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 22600
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

22600:X 01 Aug 09:55:20.910 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
22600:X 01 Aug 09:55:20.910 # Sentinel runid is 31cfb89ac4fe6085784e0541972261ff7f09f339
22600:X 01 Aug 09:55:20.910 # +monitor master host6379 127.0.0.1 6379 quorum 1
22600:X 01 Aug 09:55:20.912 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ host6379 127.0.0.1 6379
22600:X 01 Aug 09:55:20.914 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ host6379 127.0.0.1 6379

  4、主机关闭,哨兵会自动选举出主机

127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6381,state=online,offset=1116,lag=0
master_repl_offset:1116
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:1115
127.0.0.1:6380> set k44 444
OK
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_repl_offset:4098
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
127.0.0.1:6381> get k44
"444"

  5、前面主机回来(前主机作为Slaver)

127.0.0.1:6379> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_repl_offset:19636
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
127.0.0.1:6379> get k44
"444"

 

posted @ 2019-08-01 10:56  编程小白1024  阅读(437)  评论(0编辑  收藏  举报