首页 > 电脑

请教php事务里可以用队列么

更新时间2018-03-31 00:45:09

如果两个人同时做一件事,怎么保证不冲突

事务跟并发没有任何关系。你使用事务只能保证这一段逻辑成功或者失败,而不能保证并发时能控制住你的程序逻辑。
对并发进行控制还是需要锁 来解决,比如楼上有提到的mysql 实现乐观锁。
如 upadte table set a = a - 1 where a = 5; 只有在a=5的况下这个update才会真正修改数据,使用这种方法是可以保证如果要修改的数据版本跟你预想中的不同,就不进行操作,通过影响行数来判断是否有修改,然后继续下面的操作或者退出。

还有就是使用排他锁,如果单机可以直接使用flock 来达到阻塞锁的目的。
或者redis和memcache来实现锁。
请求比较多的的情况下推荐使用redis,memcache来进行锁操作,或者考虑用消息队列来处理并发的情况。

 

见过一个是依赖nginx的fastcgi_finish_request。

相关标签:php

上一篇:主板七彩虹c.a75fm2v14和cpuAMD速龙IIX4750X是否兼容,请说明理由

下一篇:数据库er图