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.节点配置
需要修改三处:
- sentinel monitor mymaster 192.168.230.130 6379 1:#这里设置指定了IP地址和端口,并且指定当有1个哨兵认为主机挂了,就对主机进行切换
- sentinel auth-pass mymaster Sa123456 :#当在redis实例中开启requirepass,这里就需要提供密码
- 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)!