您的位置:首页 > 数据库 > Memcache

memcached 中继主从延迟数据

2015-12-04 10:38 621 查看
注:本节的例子来自百度文库的一位工程师,在此表示感谢.

MySQL
在做 replication
时,主从复制之间必然要经历一个复制过程,即主从延迟的时间.尤其是主从服务器处于异地机房时,这种情况更加明显.

把 facebook
官方的一篇技术文章,其加州的主数据中心到弗吉尼亚州的主从同步延期达到70ms;

考虑如下场景:

1:
用户 U
购买电子书 B, insert into Master (U,B);

2:
用户 U
观看电子书 B, select
购买记录[user=’A’,book=’B’] from Slave.3:
由于主从延迟,第2步中无记录,用户无权观看该书.

这时,可以利用
memached
在 master
与 slave
之间做过渡(图
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步中无记录,用户无权观看该书.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: