memcached 中继主从延迟数据

来源:互联网 发布:没有网络视听许可证 编辑:程序博客网 时间:2024/04/24 16:22

:本节的例子来自百度文库的一位工程师,在此表示感谢.

MySQL 在做 replication,主从复制之间必然要经历一个复制过程,即主从延迟的时间.尤其是主从服务器处于异地机房时,这种情况更加明显.
facebook官方的一篇技术文章,其加州的主数据中心到弗吉尼亚州的主从同步延期达到70ms;

考虑如下场景:
1:用户 U购买电子书 B, insert into Master (U,B);
2:用户 U观看电子书 B, select购买记录[user=’A’,book=’B’] from Slave.3:由于主从延迟,第2步中无记录,用户无权观看该书.

这时,可以利用memachedmasterslave之间做过渡(5.2):
1:用户 U购买电子书 B, memcached->add(‘U:B’,true)
2:主数据库 insert into Master (U,B);
3:用户 U观看电子书 B, select购买记录[user=’U’,book=’B’] from Slave.

如果没查询到,memcached->get(‘U:B’),查到则说明已购买但Slave延迟.4:由于主从延迟,第2步中无记录,用户无权观看该书

0 0
原创粉丝点击