为了账号安全,请及时绑定邮箱和手机立即绑定

mysql高并发时候投票问题 如何优化

mysql高并发时候投票问题 如何优化

慕莱坞森 2019-05-12 12:38:26
比如一万人给一个人投票我的做法是先是读取票数然后在票数+1但是一万人同时投票的话获取票数和更新肯定获取的不对代码如下用的是phpcms请问大神该怎么优化代码就这么点结构简单的就是投票人比较多//根据ID获取票数$r=$db->get_one(array('id'=>intval($_GET['id'])));//票数累计并更新票数$num=$r['num']+1;$sql=array('num'=>$num);$db->update($sql,array('id'=>intval($_GET['id'])));
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

针对于这个需求,我有两步方案
1.将用户点击投票或者取消投票的总数放到缓存中,redis,memcache都可以,建议redis;
2.将某个用户是否投票,放入缓存,同上;
3.用户展示的以及判断的数据逻辑,直接走缓存,然后再通过定时脚本同步数据到mysql服务器上;
4.如果为了保险起见可以在更新或者写入的时候加锁,保证数据的一致性,前提条件要根据逻辑来,不会出现死锁。
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号