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台