这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)(中)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent Manager,2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)(中)

搭建Redis集群


上文中说了三种Redis搭建的模式,分别是主从模式、哨兵模式、Cluster模式,关于前两种网上有着非常多的教程,这里就不再重新演示了,这里着重演示一下如何去搭建一个Redis Cluster集群。


环境准备


CentOS 7,Redis5.0.4


场景描述


本次会启动三台CentOS 7服务器,每台服务器上搭载三个Redis实例,一主二从,一共三个Master实例,六个Slave实例。


清单如下:


Master 1:IP:192.168.43.101 Port:7001
Master 2:IP:192.168.43.102 Port:7002
Master 3:IP:192.168.43.103 Port:7003
Slave 1:IP:192.168.43.101 Port:6001
Slave 2:IP:192.168.43.102 Port:6002
Slave 3:IP:192.168.43.103 Port:6003
Slave 4:IP:192.168.43.101 Port:6004
Slave 5:IP:192.168.43.102 Port:6005
Slave 6:IP:192.168.43.103 Port:6006


修改配置文件


熟悉Redis的应该明白,所谓Redis实例,实际上就是一个又一个的配置文件。要在服务器上启动多台不同Redis,实际上就是使用不同的配置文件来启动Redis,所以第一步我们要先对集群中的每一个Redis实例配置不一样的配置文件。


绑定Redis地址


下列三台主机上的配置文件均为Master节点配置文件(修改bind属性)


image.png


修改端口号


将端口号修改为自定义的端口号,默认为6379,修改为我们自定义的端口号。


image.png


开启集群模式并设置集群配置文件


将cluster-enabled 设置为yes,并将cluster-config-file设置为自定义的文件。


这里定义为nodes-端口号.conf


image.png


修改集群RDB快照和AOF文件的存放位置


修改dir属性,这里定义为/home/redis-cluster/redis-master/


image.png


修改集群密码


修改masterauth属性为Redis(RequirePass)密码。


image.png


开启AOF持久化


修改appendonly属性


appendonly yes


对六台Slave节点进行同样的修改配置操作


注意:上述指定的文件夹和文件名原则上对于每个redis实例都应该是唯一的,便于区分。


启动Redis实例


运行命令:


#第一台主机
/usr/local/bin/redis-server /home/redis-cluster/redis-master/redis-master-7001.conf
/usr/local/bin/redis-server /home/redis-cluster/redis-slave/redis-slave-6001.conf
/usr/local/bin/redis-server /home/redis-cluster/redis-slave/redis-slave-6004.conf
#第二台主机
/usr/local/bin/redis-server /home/redis-cluster/redis-master/redis-master-7002.conf
/usr/local/bin/redis-server /home/redis-cluster/redis-slave/redis-slave-6002.conf
/usr/local/bin/redis-server /home/redis-cluster/redis-slave/redis-slave-6005.conf
#第三台主机
/usr/local/bin/redis-server /home/redis-cluster/redis-master/redis-master-7003.conf
/usr/local/bin/redis-server /home/redis-cluster/redis-slave/redis-slave-6003.conf
/usr/local/bin/redis-server /home/redis-cluster/redis-slave/redis-slave-6006.conf


查看进程 ps -ef | grep redis:


image.png


可以看到现在启动的redis实例已经是集群模式的了。


搭建集群


输入命令:


/usr/local/bin/redis-cli -a Object 
--cluster create --cluster-replicas 2 192.168.43.101:7001 
192.168.43.102:7002 192.168.43.103:7003 192.168.43.101:6001 
192.168.43.102:6002 192.168.43.103:6003 192.168.43.101:6004 
192.168.43.102:6005 192.168.43.103:6006


其中 --cluster-replicas 2代表每个Master携带2个Slave,那么就是三个Master,每个Master携带两个Slave。


示意图如下:



image.png


我们可以看到,Redis将三台机器连成了一个整体,Master7001的Slave指向了其它两台服务器上的Slave,而其它两台服务器的Master也同样跨服务器指向了,这就是RedisCluster高可用的策略,假设有一台服务器完整地宕机了,由于自己的Slave节点存在于别的服务器上,数据也能重新通过选举选举的方式恢复,不易引起数据的丢失。


image.png


另外我们可以看到,我们在上文说过,Cluster集群模式将集群分为16384个槽,这里体现为0-16383,分布到了每一个Master节点上,这对我们之前的理论部分做了验证。






相关文章
|
8月前
|
缓存 NoSQL 关系型数据库
MySQL 与 Redis 如何保证双写一致性?
我是小假 期待与你的下一次相遇 ~
884 7
|
10月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
732 2
|
11月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
1146 5
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
895 6
|
9月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
11月前
|
负载均衡 NoSQL Redis
【赵渝强老师】Redis的主从复制集群
Redis主从复制是指将一台Redis服务器的数据复制到其他Redis服务器,实现数据热备份、故障恢复、负载均衡及高可用架构的基础。主节点负责写操作,从节点同步数据并可提供读服务,提升并发处理能力。
361 5
|
10月前
|
存储 NoSQL 算法
Redis的集群架构与使用经验
本文介绍了Redis的集群架构与使用经验,包括主从复制、哨兵集群及Cluster分片集群的应用场景与实现原理。内容涵盖Redis主从同步机制、数据分片存储方式、事务支持及与Memcached的区别,并讨论了Redis内存用尽时的处理策略。适用于了解Redis高可用与性能优化方案。