memcached 中继主从延迟数据

本文探讨了在主从复制延迟情况下,电商购物过程中用户无法观看已购买电子书的问题,并提出使用memcached作为过渡方案来解决延迟带来的影响。

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

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步中无记录,用户无权观看该书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值