redis 分片 哨兵 集群

3. Redis分片机制

3.1 分片机制说明

说明:由于电商网站中的数据量一般很大,如果只是使用单个redis节点进行数据存储,则不能完成任务.所以需要准备多台Redis公共实现内存数据的扩容.
在这里插入图片描述

3.2 准备3台redis

3.2.1 编辑配置文件

1).准备文件目录
在这里插入图片描述
2).修改端口号
在这里插入图片描述

3.2.2 启动多台redis

命令:
redis-server 6379.conf
redis-server 6380.conf
redis-server 6381.conf 在这里插入图片描述

 

1. Redis哨兵机制

1.1 分片机制存在的问题

如果redis分片机制其中有一台redis宕机,则整个Redis分片将不能正常的使用. 分片机制没有高可用的效果.

1.2 哨兵机制说明

1.2.1 配置哨兵的前提

说明:实现redis数据同步,是实现哨兵配置的前提条件.

1.2.2 复制文件

在这里插入图片描述

1.2.3 删除多余的持久化文件

在这里插入图片描述
删除完成之后,依次启动redis.如图
在这里插入图片描述

1.2.4 实现主从挂载

主机: 6379
从机: 6380/6381
命令:
1. 检查节点的状态 info replication
在这里插入图片描述
2.主从挂载命令
在这里插入图片描述
3. 主从检查
在这里插入图片描述

1.3 哨兵工作原理

在这里插入图片描述
步骤:
1).当哨兵启动时,会动态的监控主机,之后利用PING-PONG 心跳检测机制,检查主机是否正常.
2).哨兵链接主机之后,获取相关的主从的服务信息. 方便以后选举.
3).当哨兵发现主机宕机,之后采用随机算法 选择新的主机. 之后其他节点当新主机的从.

1.4 哨兵配置

1.4.1 复制文件

在这里插入图片描述

1.4.2 修改哨兵配置文件

1).关闭保护模式
在这里插入图片描述
2).开启后端运行
在这里插入图片描述
3).监控主机
在这里插入图片描述
4. 设定哨兵选举的时间
在这里插入图片描述

1.4.3 哨兵高可用测试

1.启动哨兵
在这里插入图片描述
2.哨兵高可用测试
第一步: 检查redis主机的状态.
第二步: 关闭redis主机.
第三步: 等待10秒 检查从机是否切换为主机.
在这里插入图片描述

第四步: 重启主机,检查是否为新主机的从.
在这里插入图片描述

 

1.5.4 分片哨兵总结

1.分片主要实现了内存扩容, 没有高可用的效果.
2.哨兵主要实现了高可用效果, 没有实现内存数据的扩容. 哨兵本身没有高可用的效果.
如何优化: 内存扩容,节点实现高可用 redis集群实现.

2.Redis集群

2.1 关于Redis集群失败说明

如果redis集群搭建失败,则按照如下的步骤完成配置, 前提条件: 搭建集群节点必须为null
1).关闭所有的redis节点
2).删除多余的配置文件 dump.rdb/nodes.conf
在这里插入图片描述

 

3).检查redis.conf配置文件 参考文档…
4).重启redis节点
5).执行搭建命令

2.2 Redis分区算法

具体详情参见文档.

2.3 面试题

1).Redis集群中由于有16384个槽位,所有redis集群中只能存储16384个key? B错误
结论: 分区只是分片了数据归谁管理 到底能存储多少由内存大小决定.
hash(key1)%16384 = 2000
hash(key2)%16384 = 2000

2).通过redis-cli -p 7000-7005 链接任意的节点都可以执行set操作 B 错误 从库不能写
3).通过redis-cli -p 7000-7005 链接任意的主机都可以执行set操作 B 错误 数据存储严格按照分区算法完成.
4).redis集群中最多能够支持多少台主机? 16384台
5).redis集群一旦搭建,如果redis节点全部关机再次重启时,需要重新搭建集群? B 错误 集群的状态都已经写入nodes.conf文件中.所以重启之后集群恢复.

知识点: Redis集群崩溃的条件是主机缺失集群崩溃
6).如果有1主1从共3组组成了redis集群. 问题: redis节点至少宕机几台.集群崩溃?? 2台…
7).如果有1主2从共3组组成了redis集群. 问题: redis节点至少宕机几台.集群崩溃?? 5台

 

posted @ 2021-01-28 12:03  Liang-shi  阅读(245)  评论(0编辑  收藏  举报