美文网首页
Redis原理学习

Redis原理学习

作者: 抬头挺胸才算活着 | 来源:发表于2020-05-19 17:55 被阅读0次

    为什么 Redis 先执行指令再记录aof日志而不是像其它存储引擎一样反过来呢?

    删掉很多key之后内存减少不是很多?

    操作系统回收的时候是以页面为单位,这些 key 分散到了很多页面中,每个页面都还有其它 key 存在,这就导致了内存不会立即被回收。

    多个Codis一起负载均衡

    1·### 选举过程
    接着上边说,当主服务器节点挂了,Sentinel系统就会选出一个领头的Sentinel来完成故障转移工作。选举规则如下: - 监视这个挂了的主节点的所有Sentinel都有被选举为领头的资格
    每进行一次选举,不论是否成功,配置纪元+1,配置纪元就是个计数器
    每个Sentinel在每个配置纪元中有且仅有一次选举机会,一旦选好了该节点认为的主节点,在这个纪元内,不可以再更改
    每个发现服务器挂了的Sentinel都会配置纪元+1并投自己一票,接着发消息要求其他Sentinel设置自己为领头人1,每个Sentinel都想成为领头的
    每个Sentinel会将最先发来请求领头的节点设为自己的领头节点并发送回复,谁先来我选谁
    当源Sentinel收到回复,并且回复中的配置纪元和自己的一致且领头Id是自己的Sentinel Id时,表明目标Sentinel已经将自己设为领头
    在一个配置纪元内,当某个Sentinel收到半数以上的同意回复时,它就是领头的了
    如果在给定时间内,没有被成功选举的Sentinel,那么过段时间发起新的选举

    选举领头Sentinel的过程和规则大概就如上所述,需要注意的是只有集群出现节点挂了才需要选举出领头Sentinel,平时每个Sentinel还是平等身份~

    这里的选举其实是raft算法的一个应用,有兴趣的小伙伴可以去读下这篇算法的论文

    相关文章

      网友评论

          本文标题:Redis原理学习

          本文链接:https://www.haomeiwen.com/subject/yudpohtx.html