Redis一主两从+哨兵监控

来源:互联网 发布:python 绝对路径 编辑:程序博客网 时间:2024/06/05 07:06


在VMware中创建3个虚拟Linux系统,如下:

Master主:192.168.0.200

Slave从:192.168.0.201 、192.168.0.202


使用下列指令修改hostname

vi /etc/sysconfig/network 修改其中HOSTNAME的值为redis_cluster_1_200

hostnameredis_cluster_1_200


分别修改3个虚拟系统的hostname如下:

redis_cluster_1_200

redis_cluster_2_201、redis_cluster_3_202


在安装redis之前需要确认gcc是否已经安装

yum install gcc


修改两个从服务器的redis.conf

slaveof192.168.0.200 6379

使用客户端登录Redis服务器之后,使用info指令可以查看到该客户端连接的Redis是主还是从


分别启动3台服务器上的Redis,并使用redis-cli登录到对应的服务器上,执行info指令

Master:


Slave:




在Master上可以进行读写操作,在Slave上只能进行读操作

Master:


Slave:




在本文中所说的一个Master二个Slave的情况,如果主节点挂掉,那么这个集群将不能对外提供写服务。为了对

主、从服务器进行监控,在2.8版本后提供了哨兵功能的稳定版本。哨兵可以监控Redis系统中主数据库和从数据库运行是

否正常。在主数据库出现故障的时候,可以自动推选某个从数据库升级为主数据库,进行自动切换,实现高可用,不

存在单点的问题。

哨兵功能可以是Master、Slave以外的单独一个节点服务器,也可以将哨兵放到Master或者Slave上。需要使用并修改

Redis安装包解压后的sentinel.conf。本文中在redis_cluster_3_202上部署哨兵程序,提供哨兵服务。

1.哨兵使用的端口是26379。


2.把和Redis相关的日志、数据文件等内容放置到dir 指定的目


3.修改sentinel monitor <master-name> <ip> <redis-port> <quorum>


4.修改sentinel down-after-milliseconds <master-name> <milliseconds> ,即Master针对ping没有应答持续多长时间

认为是Master宕机,默认30秒


5.修改sentinel parallel-syncs <master-name> <numslaves> ,在Master挂掉并推举新的Master过程中,同时进行数据

同步的Slave数量,因本文中存在2个Slave,所有设置为2



哨兵也可以部署多台机器,形成哨兵集群,避免单点的问题,保证系统的高可用。


在3台服务器上分别启动Redis服务,并使用ps -aux|grep 6379 查看服务是否启动



redis_cluster_3_202上启动哨兵服务,并添加&设置为后台进程

./redis-server ../etc/sentinel.conf --sentinel &



在Master、Slave服务器上都可以查看哨兵相关信息

./redis-cli -h 192.168.0.202 -p 26379 info Sentinel




关闭Master主节点上的Redis,查看各Redis节点相关信息。

redis_cluster_3_202上终端显示信息如下:在192.168.0.200上的Master主节点已挂掉,经过推举最后192.168.0.202

成为新的Master,192.168.0.200由Master转换为Slave。


查看192.168.0.202中redis-cli客户端执行info信息




然后,将192.168.0.200上的Redis启动,并使用redis-cli执行info指令,查看相关信息


同时,在192.168.0.202上显示slave 200已经加入到集群中


查看192.168.0.202中redis的info指令执行的结果,202仍然为Master


查看哨兵监控信息



原创粉丝点击