FWQ
调研Redis高可用两种方案
调研Redis高可用两种方案 收藏 对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《调研Redis高可用两种方案》,主要介绍了工具、技能、开发者,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了! 导读:Redis是被广泛使用的基础软件之一。对于工程师和,架构师,运维人员来说,了解Redis的高可用方案和背后的原理,是必备的基础知识。本文作者深入分析了Redis高可用的方方面面,并且做了有效总结,相信对广大读者可以起到很好的领路作用。 作者 codedump codedump.info 博主,多年从事互联网服务器后台开发工作。可访问作者博客阅读 codedump 更多文章。 Redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式: 主从复制数据。 采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务。 主从复制 Redis中主从节点复制数据有全量复制和部分复制之分。 旧版本全量复制功能的实现 全量复制使用snyc命令来实现,其流程是: 从服务器向主服务器发送sync命令。 主服务器在收到sync命令之后,调用bgsave命令生成***的rdb文件,将这个文件同步给从服务器,这样从服务器载入这个rdb文件之后,状态就会和主服务器执行bgsave命令时候的一致。 主服务器将保存在命令缓冲区中的写命令同步给从服务器,从服务器执行这些命令,这样从服务器的状态就跟主服务器当前状态一致了。 旧版本全量复制功能,其***的问题是从服务器断线重连时,即便在从服务器上已经有一部分数据了,也需要进行全量复制,这样做的效率很低,于是新版本的Redis在这部分做了改进。 新版本全量复制功能的实现 新版本Redis使用psync命令来代替sync命令,该命令既可以实现完整全同步也可以实现部分同步。 复制偏移量 执行复制的双方,主从服务器,分别会维护一个复制偏移量: 主服务器每次向从服务器同步了N字节数据之后,将修改自己的复制偏移量+N。 从服务器每次从主服务器同步了N字节数据之后,将修改自己的复制偏移量+N。…