Skip to content

pipeline及主从同步

约 501 字大约 2 分钟

redis

2025-02-14

**pipeline:**前提:redis本身基于tcp的一个Request/Response protocol模式,单个请求处理需要一一应答 使用场景:比如多个指令需要被提交,而且这些指令没有互相的依赖关系,不要求结果的即时响应。那么使用pipeline可以充当批处理的工具。 作用:提升性能,因为TCP连接中减少了交互往返的时间,也减少了io操作磁盘的次数。


主从同步原理主从结构采用一主多从或者级联结构。主从同步分为全量同步和增量同步。

image-20250214154212808

主从模式的弊端不具备高可用性,当master挂掉之后,redis就不具备写入操作了,所以怎么办呢?Redis Sentinel(哨兵)redis官方提供的集群管理工具,本身也是一个独立运行的进程,监控多个master-slave集群,发现master宕机之后,能进行自动切换。1>监控:检查主从服务器是否运行正常2>提醒:通过API向管理员或者其他应用程序发送故障通知3>自动故障迁移:主从切换

redis sentinel是一个分布式的系统,可以有多个sentinel进程,这些进程使用流言协议来接收主服务器是否下线的信息,并使用投票协议来决定是否执行自动故障迁移,以及选择哪个从服务器作为新的主服务器。

流言协议Gossip(反熵)熵:杂乱无章。反熵:在杂乱无章中寻求一致。1>每个节点都随机与对方通信,最终所有节点的状态达成一致。2>种子节点定期随机向其他节点发送节点列表以及需要传播的信息。3>不保证信息一定会传播给所有节点,但是最终会趋于一致。