redis实现mysql锁的方法



$config = array(
'host' => 'localhost',
'port' => 6379,
'index' => 0,
'auth' => '3213',
'timeout' => 1,
'reserved' => null,
'retry_interval' => 100,
);

$redislock = new \redislock($config);

$key = 'fwefwe';
while (1) {

$is_lock = $redislock->lock($key, 2);

//如果已经抢占锁了 可以继续往下执行
if ($is_lock) {
break;
}
usleep(500000);

}

$data = array('info1' => '啦2啦', 'info2' => '啦啦啦22啦啦啦');
$isok = $this->commoninsertinfo($data, 'mobantestinfo1');
$redislock->unlock($key);
echo '执行成功';
exit();


  不用担心mysql出现死锁 缓存穿透也可以采取这个方案 只保证1个执行