以后还是要好好写博客,把好东西或者是在工作中遇到的问题记录下来
菜鸡的提升之路
最近在看《redis的设计与实现》,这本书比较底层,应用说的很好,主要还是对redis底层的详解吧,个人觉得很不错,还是很好看的一本书,特别是刚开始对redis底层的各种数据结构的介绍,步步升入。。
闲话少说,不如正题
sentinel
sentinel(哨兵)是redis高可用的解决方案。它的本质是一个运行在特殊模式下的redis服务器。
sentinel做的主要的工作是
- 主服务器选举:sentinel系统会挑选server1属下的一个从服务器,并将这个从服务器提升为主服务器
- 故障转移:向从服务器发送(slave of no one)命令,将从服务器提升为主服务器。从服务器发送复制指令,(sync,psync),当所有的从服务器完成复制新的服务器时,故障转移操作执行完毕
- sentinel还会继续监视已经下线的server1,并在它重新上线时,将他设置为新的主服务器的从服务器。
sentinel服务初始化
sentinel其实就是一个运行在特殊模式下的redis服务器。一个sentinel启动时,他需要执行以下步骤
- 初始化redis服务器
- 将普通的redis服务器使用的代码替换成sentinel专用代码
- 初始化sentinel的状态
- 根据给定的配置文件,初始化sentinel的监视主服务器列表
- 创建连向主服务器的网络连接