Redis三主三从集群搭建

一、引子

主从复制以及哨兵,他们可以提高读的并发,但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多master-slave集群(看原理图)。

所以一起来学习redis-cluster:他可以支撑多个master-slave,支持海量数据,实现高可用与高并发。哨兵模式其实也是一种集群,他能够提高读请求的并发,但是容错方面可能会有一些问题,比如master同步数据给slave的时候,这其实是异步复制吧,这个时候 master宕机了,那么slave上的数据就没有master新,数据同步需要时间的,1-2秒的数据会丢失。master恢复并转换成slave后,新数据则丢失。

Redis-Cluster集群特点

  • 1.每个节点知道彼此之间的关系,也会知道自己的角色,当然他们也会知道自己存在与一个集群环境中,他们彼此之间可以交互和通信,比如说ping - pong。那么这些关系都会保存到某个配置文件中,每个节点都有,这个我们在搭建的时候会做配置的。
  • 2.客户端要和集群建立连接的话,只需要和其中一个建立关系就行。
  • 3.某个节点挂了,也是通过超过半数的节点来进行的检测,客观下线后主从切换,和我们之前在哨兵模式中提到的是一个道理。
  • 4. Redis中存在很多的插槽,又可以称之为槽节点,用于存储数据。

集群容错

构建Redis集群,需要至少3个节点作为master,以此组成一个高可用的集群,此外每个master都需要配备一个slave,所以整个集群需要6个节点,这也是最经典redis集群模式,也可以称之为三主三从,容错性更佳。所以在搭建的时候需要有6台虚拟机。请各自准备6台虚拟机,并安装好redis(可以通过克隆去构建,使用单实例的Redis去克隆即可)        

  • 集群也可以在单服务器构建,称之为伪集群,但是生产环境肯定是真的,所以建议用6台。
  • 克隆后务必关闭Redis

二、原理图

(redis安装redis在CentOs服务器上的安装和设置开机自启动_p&f°的博客-CSDN博客

三、具体实现


修改redis.conf主配置文件(先说192.168.1.201配置,其他5台一样)

1、进入redis.conf主配值文件夹,修改rendis.conf配置

cd /usr/local/redis

vim redis.conf

找到如下位置

2、修改如下提到的配置

#开启集群模式
cluster-enabled yes

#每一个节点需要有一个配置文件,需要6份。
#每个节点处于集群的角色都需要告知其他所有节点,彼此知道
#这个文件用于存储集群信息,不需要人为干预
cluster-config-file nodes-6379.conf

#超时时间,超时则认为master宕机,随后主备切换
cluster-node-timeout 5000

#开启AOF
appendonly yes

3、清除redis持久化生成的rdb等文件。这一步不是必须的,第一次安装一般没有这些文件,如果有删除即可。(如果后期启动过程出错,极大概况忘记删除了,把rdb等文件删除清空就行)

(如果找不到位置,请查看Redis的持久化机制(RDB和AOF)(1)_p&f°的博客-CSDN博客

中的RDB的配置第一条 1. 保存位置。对照自己的持久化策略即可)

 4、重启redis,查看是否重启成功

 5、重复以上4步操作,修改剩余5台CentOs


Ⅱ 创建集群

1、创建命令(随便在那个CentOs中执行创建)

######注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb来构建集群
######注意2:最新版使用C语言来构建了,这个要注意。以下为新版的redis构建方式

######创建集群,主节点和从节点比例为1,1-3为主,4-6为从,1和4,2和5,3和6分别对应为主从关系,这也是最经典用的最多的集群

redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1

 输入完创建命令后,会显示集群配置信息,如下。输入yes同意即可创建成功

 2、检查集群信息。创建成功后可以使用如下命令

redis-cli --cluster check 192.168.1.201:6379

 扩展1:

slots:槽,用于装数据主节点有从节点没有

1、总共有16384个槽,会平均分配给master节点

2、槽slot怎么存储

 存储举例说明

主节点把数据存入slot槽中,从节点不会存储数据,当master挂掉时,会把对应的数据存入到对应的slave中。

比如:2栋起火了(master挂了),101用户就会到5栋(slave替代master,成为master)101。

 扩展2:集群基本命令

扩展三:springboot集成redis集群 

在springboot集群中配置即可

spring:
  redis:
    #Redis 集群模式
    password: imooc
    cluster:
      nodes: 192.168.1.201:6379,192.168.1.202:6379,192.168.1.203:6379,192.168.1.204:6379,192.168.1.205:6379,192.168.1.206:6379

 

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 Redis 三主三从集群的命令如下: 1. 启动 6 个 Redis 服务,分别监听不同的端口(例如 7000、7001、7002、7003、7004、7005): ``` redis-server /path/to/redis.conf ``` 2. 创建 6 个 Redis 配置文件,分别配置监听端口、数据存储路径、集群节点信息等: ``` port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes dir /path/to/data/7000/ port 7001 cluster-enabled yes cluster-config-file nodes-7001.conf cluster-node-timeout 5000 appendonly yes dir /path/to/data/7001/ port 7002 cluster-enabled yes cluster-config-file nodes-7002.conf cluster-node-timeout 5000 appendonly yes dir /path/to/data/7002/ port 7003 cluster-enabled yes cluster-config-file nodes-7003.conf cluster-node-timeout 5000 appendonly yes dir /path/to/data/7003/ port 7004 cluster-enabled yes cluster-config-file nodes-7004.conf cluster-node-timeout 5000 appendonly yes dir /path/to/data/7004/ port 7005 cluster-enabled yes cluster-config-file nodes-7005.conf cluster-node-timeout 5000 appendonly yes dir /path/to/data/7005/ ``` 3. 将 6 个 Redis 节点加入到集群中: ``` redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \ 127.0.0.1:7002 127.0.0.1:7003 \ 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1 ``` 其中,`--cluster-replicas 1` 表示每个主节点有一个从节点。 4. 验证集群是否搭建成功: ``` redis-cli -c > cluster info > cluster nodes ``` 如果输出信息中没有出现错误,说明 Redis 集群搭建成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值