自学内容网 自学内容网

Linux下redis集群环境的搭建(一主多从)

1.环境说明:

本次的redis集群环境搭建为三台redis实例,架构为一主两从。

主节点的数据和从节点的数据保持同步。

只有主节点有写的权限,从节点只能查看(读写分离)。

2.环境准备:

首先创建好三台虚拟机,分别搭建好个各自单机的redis服务。

redis搭建教程:Linux环境下的redis环境搭建-CSDN博客

3.集群配置

3.1主节点操作

修改配置文件:

cd /usr/local/redis/bin/

vim redis.conf

修改masterauth,后面的添加的密码为从节点访问主节点时需要的密码。

3.2.从节点配置

配置masterauth和配置主节点的ip地址和端口

重启redis服务

#先结束进程
pkill redis
./redis-server ./redis.conf 

4.集群验证

4.1.主节点进入到redis

./redis-cli
auth Sa123456
info replication

会显示自己的角色为master以及其他从节点的信息

4.3.从节点上进入redis

./redis-cli
auth Sa123456
info replication

会显示自己的角色为slave以及其他的信息

4.4.数据同步验证

在主节点set一个值,从节点进行get操作,查看是否同步

可以看出数据已经成功同步!

5.主备节点切换

基于上面步骤搭建的redis环境中,如果主节点宕机了,那么此时两个从节点会不能正常使用。

主备节点的切换使用的redis的哨兵模式,下面将介绍主备的自动切换。

5.1.节点配置

需要修改三处:

  1. sentinel monitor mymaster 192.168.230.130 6379 1:#这里设置指定了IP地址和端口,并且指定当有1个哨兵认为主机挂了,就对主机进行切换
  2. sentinel auth-pass mymaster Sa123456 :#当在redis实例中开启requirepass,这里就需要提供密码
  3. daemonize yes:开启守护进程

将哨兵模式的文件进行拷贝(主从节点都需要拷贝)

cd /usr/local/src/redis-5.0.4/

cp sentinel.conf /usr/local/redis/bin/

cd /usr/local/redis/bin/

修改配置文件(从节点相同配置)

vim sentinel.conf

5.2.防火墙配置

#public 区域中永久添加 TCP 端口 26379的防火墙规则
firewall-cmd --zone=public --add-port=26379/tcp --permanent

#重新加载防火墙配置,使更改生效。
firewall-cmd --reload

启动哨兵模式

./redis-sentinel

5.3.哨兵模式验证

在一个从节点的客户端执行

./redis-cli
monitor

会发现节点会之间会一直进行ping操作,来监控节点是否宕机。

此时,当主节点宕机会选举新的主节点,当主节点正常时,会以从节点的身份运行工作。

6.Java中的主备切换配置

在原始的配置文件中,redis只配置了一个redis的实例地址,此时虽然redis之间能够自行选举,但是java程序是无法识别的。

当连接的这台redis宕机时,java程序会出现异常:

此时,我们只要简单修改一下配置文件即可:

重启java应用后关闭一个节点,此时java程序会重试连接,超过设置的次数会重新选取一个节点

此时就不会出现该问题了。

至此,哨兵模式搭建完毕 !


原文地址:https://blog.csdn.net/weixin_62286800/article/details/144326119

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!