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

时间:2023-03-09 03:44:20
Redis的复制(Master/Slave)、主从复制、读写分离 (下)

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

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

  1创建哨兵文件

touch sentinel.conf
[root@localhost myredis]# ls -l
总用量
-rw-r--r--. root root 7月 : dump6379.rdb
-rw-r--r--. root root 7月 : dump6380.rdb
-rw-r--r--. root root 8月 : redis6379.conf
-rw-r--r--. root root 7月 : redis6380.conf
-rw-r--r--. root root 7月 : redis6381.conf
-rw-r--r--. root root 7月 : redis_aof.conf
-rw-r--r--. root root 7月 : redis.conf
-rw-r--r--. root root 8月 : sentinel.conf

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

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

sentinel monitor host6379 127.0.0.1  

  3、启动哨兵

[root@localhost myredis]# redis-sentinel /myredis/sentinel.conf
:X Aug ::20.908 * Increased maximum number of open files to (it was originally set to ).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0. (/) bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in sentinel mode
|`-._`-...-` __...-.``-._|'` _.-'| Port:
| `-._ `._ / _.-' | PID: 22600
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' :X Aug ::20.910 # WARNING: The TCP backlog setting of cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of .
:X Aug ::20.910 # Sentinel runid is 31cfb89ac4fe6085784e0541972261ff7f09f339
:X Aug ::20.910 # +monitor master host6379 127.0.0.1 quorum
:X Aug ::20.912 * +slave slave 127.0.0.1: 127.0.0.1 @ host6379 127.0.0.1
:X Aug ::20.914 * +slave slave 127.0.0.1: 127.0.0.1 @ host6379 127.0.0.1

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

127.0.0.1:> info replication
# Replication
role:master
connected_slaves:
slave0:ip=127.0.0.1,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:
127.0.0.1:> set k44
OK
127.0.0.1:> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:
127.0.0.1:> get k44
""

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

127.0.0.1:> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:
127.0.0.1:> get k44
""