在讲缓存之前先了解一下,什么是MYSQL的主从复制和读写分离。
主从复制
![](https://i-blog.csdnimg.cn/blog_migrate/1ec74eb56d057c9455808dae64f310ed.png)
master是主数据库,stave从数据库
(1)DML操作引起主数据库数据变更,产生binlog文件(二进制日志,在事务提交后产生),通过io-thread写入binlog;
(2)从数据库请求读取binlog,开启io-thread线程读取主数据库发送过来的binlog,并写入relaylog(中继日志);
(3)从数据库通过SQL-thread读取relaylog,进行回放(就是在主数据执行的DML操作在从数据库执行一遍),这样就能保持从数据库与主数据库一致。
读写分离
应用层写操作在主数据库,读操作在从数据库,这种读写分离可高效解决读性能,由于主数据库同步到从数据库需要一点的时间,所以从数据库读取到的数据不一定是最新的数据,会有一定的延迟,看具体的业务要求可否满足。最终一致性,写主数据库&#