工作间隙写了个redis防并发的锁示例,以备以后参考,前面写过利用文件锁防并发的代码,但考虑到效率以及分布式系统,文件锁会有弊端,而这种情况下redis则没有问题。
<?php $redis=new Redis; $redis->connect('127.0.0.1',6379); $userid='23'; $articleid='126'; //开始加锁 $key=md5($userid.$articleid); //设置不可重复 $result=$redis->setnx($key,'1',5); if(!$result){ echo '您访问太频繁了,请稍后访问!'; $redis->delete($key); exit; } /* * 正常业务逻辑 */ $redis->delete($key);