Redis集群+哨兵模式部署(简单易懂)

在redis当中,有主服务器和从服务器之分,一般来说,主服务器负责数据的写入,从服务器进行数据读取,读取分离。而哨兵有着监控redis集群的功能,如果主服务器挂了,哨兵会以某种方式选举master,从而实现高可用。

首先,附上集群架构图:
Redis集群+哨兵模式部署(简单易懂)_第1张图片
事先准备三台服务器(不是一台虚拟机中的三个port)在这里,我部署的主服务器是10.201.7.175:6380、从服务器是10.201.7.171:6379、10.201.7.176:6381,其中哨兵部署为10.201.7.175、10.201.7.171、10.201.7.176。声明一下,默认我认为你有三台服务器并且已经下载并编译了redis。

第一步:redis.conf文件配置

首先,开启redis服务后台运行,将其值置为yes

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

开启外网连接权限(0.0.0.0表示接受任意外网连接)

# By default Redis listens for connections from all the network interfaces
# available on the server. It is possible to listen to just one or multiple
# interfaces using the "bind" configuration directive, followed by one or
# more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
bind 0.0.0.0

指定端口号

# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379

开启slave节点写权限

# Note: read only slaves are not designed to be exposed to untrusted clients
# on the internet. It's just a protection layer against misuse of the instance.
# Still a read only slave exports by default all the administrative commands
# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
# security of read only slaves using 'rename-command' to shadow all the
# administrative / dangerous commands.
slave-read-only no

最后在文件末尾添加如下配置,表示当服务后台启动时,自动将某台服务器作为master,在这里我的master是175,端口号是6380

slaveof 10.201.7.175 6380

第二步:配置sentinel.conf文件(如果没有此文件,在redis文件夹下touch一个即可)

首先,开启哨兵后台运行权限

#Control the switch running in the background
daemonize yes

重点来了!下面是配置哨兵监控模式(重中之重)

# Note: master name should not include special characters or spaces.
# The valid charset is A-z 0-9 and the three characters ".-_".
sentinel monitor mymaster 10.201.7.175 6380 2

说明:sentinel monitor+集群名称(后续必须要与java中的JedisSentenelPool构造方法中的masterName保持一致)+主服务器端口+当主服务器挂掉时,哨兵开启故障转移阈值(当其余某台节点中的一台有2票时,开启选举,使其为master,否则一直处于选举状态)

然后,使用scp指令将redis整个文件夹拷贝到其他两台节点上,需要改变的地方有

redis.conf中的端口号
将主服务器中的redis.conf文件末尾的slaveof 10.201.7.175 6380去掉

所有的配置完成之后,使用如下命令再三台服务器上分别开启redis服务(注意顺序:先主、后从)

src/redis-server redis.conf

使用如下命令,开启哨兵监控模式(开启顺序不要紧)

src/redis-sentinel sentinel.conf

而后,分别在三台服务器上执行如下命令,开启redis客户端

src/redis-cli -h 当前服务器ip -p redis.conf文件中的端口号

在主服务器上的客户端上执行如下命令,查看master和slaves

info replication

看到如下所示,集群+哨兵模式配置完成
Redis集群+哨兵模式部署(简单易懂)_第2张图片
说明:connected_slaves:2表示旗下有2台服务器作为它的slave,紧跟着后面的是具体的slave的ip。

到这里,整个环境就全部搭建完成,如有问题,欢迎留言。

你可能感兴趣的:(redis集群+哨兵模式,redis,java)