redis使用(3):哨兵、集群、

一、哨兵:
是一个分布式结构,对主从结构的服务器进行监控,当主服务器宕机,投票选择从服务器成为主服务器,并连接其他的slave。

配置哨兵配置文件:
在这里插入图片描述
启动哨兵redis-sentinel sentinel-6003.conf
连接哨兵redis-cli -p port
首先启动主从服务器(6000,6001,6002),再启动哨兵(6003,6004,6004),当主服务器(6000)挂掉后,哨兵会投票推举,其中一个从服务器(6002)成为一个主服务器在这里插入图片描述
原理:
1)监控阶段: sentinel首先会获取master的状态,再获取slave的状态,每个sentinel之间会共享信息
2)通知阶段: sentinel会获取master和slave的工作状态,并于其他sentinel共享
3)故障转移阶段: 某个sentinel发现master下线后,此时的master状态为SDOWN主观下线,然后共享该信息,其他sentinel也会发送消息来判断master是否下线,如果超过半数的sentinel认为master下线了,master状态就成为了ODOWN客观下线。所有sentinel会投票选出一个sentinel来进行故障转移(每个sentinel都会发送一个信息,投票给第一个到达自身的sentinel)。会选出一个slave作为新的master,sentinel会向新的master发送slaveof no one,其他slave发送slaveof masterip masterport

二、集群:
用网络将多个主从服务器结构连接在一起

集群存储设计:
每个主从服务器都会存储多个槽(每个槽存储多个key,每个key会通过hash算法得到对应的值,就存储在对应的槽中)。

获取数据请求:
首先根据key计算得到hash值,如果访问的服务器中有对应的槽就会返回数据,否则告知对应的槽所在的服务器,会去对应的服务器去寻找。

创建集群:
配置服务器:总共6个服务器使用端口6000~6005,使用sed "s/想要被替换的文本/替换成的文本/g" 源文件>生成文件来对文件进行复制。
在这里插入图片描述
开启6个redis后会使用ps命令会出现cluste字样
在这里插入图片描述
开启cluster服务redis-cli --cluster create ip:port ip:port ... --cluster-replicas n表示每个主服务器对应n个从服务器,下图中前三个为master,后三个为slave
在这里插入图片描述
操作cluster集群redis-cli -c -p port

主从下线:
slave下线:对服务器没有影响,对应的master会标记不可使用,slave重新上线会重连
master下线:slave会重新成为master,master重新上线会成为slave

1)缓存预热: 系统启动的时候,提前将相关的数据加载到缓存系统,避免用户请求先查询数据库再将数据缓存。
2)缓存雪崩: 某个时间同时有大量的key到期,之后对这些key有大量的访问
3)缓存击穿: 某个和key过期,该key的访问量巨大
4)缓存穿透: 对数据库中不存在的key进行了大量的访问

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值