热门

最新

红包

立Flag

投票

同城

我的

发布
as4589sd
阿啄debugIT
6 年前
trueas4589sd

redis下处理并发问题,通过使用setnx进行加锁,在操作系统以及数据库中处理并发都会用到锁机制,虽然加锁可以解决并发问题,但是会降低并发量,所以它们都会通过读写锁来降低锁的粒度.

加锁实际上就是把并行读写改成串行读写的方式来避免资源竞争
$redis = new Redis();
$redis->connect('127.0.0.1', 6370);
if(!$redis->setnx('lock',1)){
usleep(500000); //等待一段时间
if(!$redis->setnx('lock',1)){
exit();
}
}
redis->EXPIREAT('lock', 2); //设置一个过期时间,避免进程挂掉导致锁不能释放
//业务处理
$redis->del('lock');

CSDN App 扫码分享
分享
评论
1
打赏
  • 复制链接
  • 举报
下一条:
五月背水一战
立即登录