《我想进大厂》之Redis夺命连环11问( 四 )
文章插图
当客户端向节点发送命令 , 如果刚好找到slot属于当前节点 , 那么节点就执行命令 , 反之 , 则会返回一个MOVED命令到客户端指引客户端转向正确的节点 。 (MOVED过程是自动的)
文章插图
如果增加或者移出节点 , 对于slot的重新分配也是非常方便的 , redis提供了工具帮助实现slot的迁移 , 整个过程是完全在线的 , 不需要停止服务 。
故障转移【《我想进大厂》之Redis夺命连环11问】如果节点A向节点B发送ping消息 , 节点B没有在规定的时间内响应pong , 那么节点A会标记节点B为pfail疑似下线状态 , 同时把B的状态通过消息的形式发送给其他节点 , 如果超过半数以上的节点都标记B为pfail状态 , B就会被标记为fail下线状态 , 此时将会发生故障转移 , 优先从复制数据较多的从节点选择一个成为主节点 , 并且接管下线节点的slot , 整个过程和哨兵非常类似 , 都是基于Raft协议做选举 。
了解Redis事务机制吗?redis通过MULTI、EXEC、WATCH等命令来实现事务机制 , 事务执行过程将一系列多个命令按照顺序一次性执行 , 并且在执行期间 , 事务不会被中断 , 也不会去执行客户端的其他请求 , 直到所有命令执行完毕 。 事务的执行过程如下:
- 服务端收到客户端请求 , 事务以MULTI开始
- 如果客户端正处于事务状态 , 则会把事务放入队列同时返回给客户端QUEUED , 反之则直接执行这个命令
- 当收到客户端EXEC命令时 , WATCH命令监视整个事务中的key是否有被修改 , 如果有则返回空回复到客户端表示失败 , 否则redis会遍历整个事务队列 , 执行队列中保存的所有命令 , 最后返回结果给客户端
- END -
- 摄像头|李彦宏《智能交通》与百度Apollo,还是小瞧它的胃口了!
- 5G|钮文新:欧美开撕5G内斗——华为让中国领先全球
- 华夏小康| 《令人心动的offer》强势回归,云视听极光带来沉浸式体验
- 米哈游|《原神》云游戏服务商完成B轮4亿元融资,米哈游再度增持
- 苹果|《常识》不改掉这10个坏习惯,小心你的手机很快死翘翘!
- 中国工程院院士|《智能交通》正式出版发行 系国内首部全面阐述智能交通“中国模式”专著
- 杜比|程序员的开源月刊《HelloGitHub》第 68 期
- 5g芯片|AMD 开源驱动让《我的世界》性能提升 30%
- 上路|李彦宏将发新书《智能交通:影响人类未来 10—40 年的重大变革》
- 交互设计|工信部印发《“十四五”信息化和工业化深度融合发展规划》