Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。
按照同步的内容可以分为全量同步和部分同步;
按照同步的时机可以分为初始化同步和实时数据同步;
初始化同步:
初始化同步一般是加挂子节点,做全量同步。
1、slave启动的时候会向master发送同步指令SYNC,master接收到并调用SYNC的syncCommand函数做同步处理。
2、syncCommand函数会启动rdbSaveBackground备份进程(如有该进程存在不需创建启动)做备份操作,备份进程启动rdbSave函数保存备份文件rdb。
3、master节点监控备份程序执行完毕后,会向slave发送rdb文件。
实时数据同步:
在一般redis主从模式中,主节点作为写节点,从节点为读节点。主节点在接受到用户写操作后会通过,通过内部函数向slave节点通知进行数据变更,该数据同步为部分数据同步。
需要说明的是主从复制不会阻塞 master,在同步数据时,master 可以继续处理 client 请求。同时在主从模式下只有一个主节点,可以有多个slave节点。健康检查发现主节点不可用的时候会选择从slave节点中选择一个升级为master,一般情况下,这种主从通过哨兵模式实现。
标签: redis
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至77508975@qq.com举报,一经查实,本站将立刻删除。
还木有评论哦,快来抢沙发吧~