mysql lru_Memcached的LRU算法

本文介绍了如何利用Mcache作为中间件,减少社交游戏中对MySQL的并发写入,通过缓存策略降低数据库压力。在用户操作过程中,Mcache负责缓存用户数据,先查询缓存,若无数据则从MySQL获取并存储,后续更新直接在Mcache中进行。30分钟后,Mcache自动更新MySQL,避免了NOSQL解决方案的回档问题,并强调了MySQL在热备和增量备份的优势。
摘要由CSDN通过智能技术生成

怪我没说清楚,比如我们的业务模型就是社交游戏,社交游戏的用户特点,就是上线之后开始游戏,操作时候十分钟之内关闭游戏下线。我们先定义PHP和MySQL之间有个中间件叫Mcache

在这个过程中,比如用户刚上线

SELECT money,exp FROM user WHERE uid = ‘1’;

于是PHP把这个query通过PHP扩展发给了Mcache,Mcache接到这个query,发现没有数据,于是就向MySQL查到数据存下来再返回给PHP;

几分钟之后,又来了一个操作,加了4个金币

UPDATE user SET money=money+4 WHERE uid = ‘1’;

这时候,Mcache接到这个query,发现已经有数据了,就直接在Mcache中对这个数据修改;

几分钟之后,又来了一个操作,加了10个金币 5点经验

UPDATE user SET money=money+4, exp=exp+5 WHERE uid = ‘1’;

这时候,Mcache接到这个query,发现已经有数据了,就直接在Mcache中对这个数据修改;

又来了一个操作,请求用户当前的金币和经验

SELECT money,exp FROM user WHERE uid = ‘1’;

这时候,Mcache直接就把最新的query发给PHP去了。

当30分钟之后,Mcache自动将这条记录update给MySQL。

这样能减少对MySQL的写入并发,之所以不用NOSQL的方案,是目前NOSQL的方案无法解决回档的问题。而MySQL在热备、增量备份方面的优势是NOSQL方案无法比拟的。你说呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值