Redis集群模式

目录

1. 主从模式

2. 哨兵模式

2.1 监控功能  

2.2 master节点的选举

2.3 启动哨兵(这里准备了一台)

3. 分片集群模式


 

第一种: 主从模式。

第二种: 哨兵模式

第三种: 集群分片模式

1. 主从模式

 搭建主从模式: 原则配从不配主。

①首先需要准备三台redis服务。两台从节点 一台为主节点。 我们为了操作方便我们就在一台虚拟机模拟主从集群模式。只需要让三台redis服务的端口号不同即可。

②修改上面三个配置文件:

port 6380
dump6380.rdb
appendfilename "appendonly6380.aof"

③启动三台redis按照相应的配置文件:

④连接三台redis服务:

redis-cli  -p 6380

redis-cli  -p 6381

redis-cli  -p 6382

⑤查看三台redis服务的角色:

⑥配置主从关系(配从不配主):

        slaveof ip port
(ip:主节点的ip, port: 主节点的port)

⑦再次查看三台redis的角色:

注意:

        主节点修改数据时,主节点的数据会同步到所有的从节点。

        从节点只能进行读操作,不能执行写操作。

思考:

(1) 如果主节点增加一些数据后,所有从节点数据会不会同步?---会

(2) 主节点能否进行读操作呢? --会

(3) 从节点能否进行写操作?  不能执行写操作

(4) 如果主节点宕机了从节点能否上位。 不能

(5) 如果新增一个从节点,那么该从节点是否可以把主节点之前的数据同步过来。可以

2. 哨兵模式

由于上面主从模式,主节点宕机后,从节点不会自动上位,redis集群中就没有写操作 ,这段时间内无法进行写操作了。

解决上面的问题:----哨兵模式---->【1】监控功能 【2】故障恢复 【3】选举一个master主节点

2.1 监控功能  

 

2.2 master节点的选举

2.3 启动哨兵(这里准备了一台)

①修改哨兵的配置:

②启动哨兵模式:

redis-sentinel sentinel.conf

③测试:

     先使用shutdown让主节点宕机 观察sentinel(哨兵界面)的控制台

思考: 

如果6380复活了,那么6381会不会让位? 不会。

如果你启动多台虚拟机---注意:关闭防火墙。

无需修改配置文件

3. 分片集群模式

分片集群它是解决我们上面哨兵模式存在的问题。他们始终只有一个master主节点,如果写操作频率过高,势必会导致master节点的压力过大 ,那么就会导致主节点宕机问题。

分片集群结构图:

 

 

思考: 客户进行数据的写操作,那么它应该被写入到哪个主节点里面。

解决办法: 使用了分槽技术。默认集群槽的数量为16384个。而每个槽可以存放若干个数据。如果搭建redis集群模式的话,为主节点平均分片这些槽。

存储原理:

redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个整数结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。

 搭建redis分片集群(三主三从):

①  7001~7006: 6台redis服务。
      创建一个文件夹cluster存放6个redis的配置文件

 

②修改6台redis配置文件--必须redis服务是空的  

1. 修改端口号port: 
2. 修改rdb文件的名称(dump文件)
3. 必须开启aof模式并修改aof文件的名称
4. 设置允许任意ip访问。bind * -::* 
5. 修改集群文件名 cluster-config-file nodes-7001.conf

6. 开启redis集群模式 cluster-enabled yes

 ③根据配置文件启动6台redis服务

redis-server redisXXX.conf

④ 为上面6台redis设置主从关系并分配槽。(ip之间用空格隔开)

redis-cli --cluster create --cluster-replicas 1 192.168.184.250:7001 192.168.184.250:7002 192.168.184.250:7003 192.168.184.250:7004 192.168.184.250:7005 192.168.184.250:7006 

 ⑤启动redis客户端

redis-cli -c -h 192.168.184.250 -p 7001

⑥测试数据  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值