redis中主从同步分为全量同步和增量同步
内存淘汰
内存淘汰:定期删除数据,惰性删除数据(查询到过期数据时,删除数据),内存淘汰策略
持久化
持久化:aof和rdb日志持久化,写aof日志,会先写aof缓存区,然后写aof日志,之后会fork子线程进行aof重写,将命令压缩,减小文件大小,在启动重写子线程时,会开辟重写缓存区,将重写过程中产生的命令放入重写缓存区,aof重写后,再将重写缓存区中的数据写入aof重写文件中,之后用重写文件替换aof文件。
同步
同步:增量同步和全量同步,都是异步处理的(redis单线程主要用于接收消息和处理消息,其他操作都是通过fork子线程操作的) redis主从同步数据时,主节点会将rdb文件发送给所有从节点,然后把新数据(增删改)放入缓存区,通过命令传播的方式传给从节点,记录主从节点的同步偏移量,当从节点挂掉重启后,主节点根据从节点偏移量将对应的数据同步给从节点。 redis通信协议gossip,常见消息info,ping,pong,meet,哨兵模式的redis,哨兵节点发送info信息给主节点查询从节点列表,哨兵定时发送ping消息给所有节点,当多个哨兵发现主节点挂了之后,将选取一个硬件资源更好的优先级更高的且数据偏移量更大的节点作为主节点(故障转移),其他从节点从新的主节点同步消息,老主节点改为从节点。
集群模式
集群模式:去中心化模式,将redis分为16384个solt,每个节点管理对应的槽位,当数据请求到来时,先判断hashkey是否在当前节点的槽,否则将请求转移到对应槽位的节点,同时每个节点都有主备节点做容灾。
2308

被折叠的 条评论
为什么被折叠?



