redis 和 mysql 数据同步问题
大家都知道,redis和mysql均支持主从数据库。为了使主从数据一致,两者采用的方式略有不同:Redis是master主动把数据发送给slave;Mysql是slave...
大家都知道,redis和mysql均支持主从数据库。为了使主从数据一致,两者采用的方式略有不同:
Redis是master主动把数据发送给slave;
Mysql是slave从master中请求;
问题出来了,为什么会有这种区别,是因为两者结构不同?还是效率不同? 展开
Redis是master主动把数据发送给slave;
Mysql是slave从master中请求;
问题出来了,为什么会有这种区别,是因为两者结构不同?还是效率不同? 展开
1个回答
展开全部
结构不同
先讲MySQL,MySQL中一个事务提交之后就永久写入了,同时将事务的操作写入日志。然后,slave从master中请求日志,复制这个事务的操作(注意不是sql语句)。
而Redis的主从同步和数据快照有关,Redis定期将内存中数据作快照保存在文件中,mater只要将文件发送给slave更新就可以了。
MySQL的slave需要请求从从某个事务(就是slave刚完成的那个)开始的所有日志,而redis不需要,slave只要将收到的快照排队,一个一个复制到硬盘、内存就行了。
先讲MySQL,MySQL中一个事务提交之后就永久写入了,同时将事务的操作写入日志。然后,slave从master中请求日志,复制这个事务的操作(注意不是sql语句)。
而Redis的主从同步和数据快照有关,Redis定期将内存中数据作快照保存在文件中,mater只要将文件发送给slave更新就可以了。
MySQL的slave需要请求从从某个事务(就是slave刚完成的那个)开始的所有日志,而redis不需要,slave只要将收到的快照排队,一个一个复制到硬盘、内存就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询