redis加鎖的常用方式有哪幾種

redis加鎖的常用方式有哪幾種

常用的加鎖方式有:

(學習視頻分享:redis視頻教程

一、incr加鎖

<?php $redis  =  new Redis(); $redis->connect('127.0.0.1'); $redis-&gt;multi(); $redis-&gt;incr('number'); //$redis-&gt;decr('number'); //$redis-&gt;expire('number',?-1); var_dump($redis-&gt;get('number')); var_dump($redis-&gt;ttl('number'));

二、setnx加鎖

<?php $redis->setnx('name',?'felix'); var_dump($redis-&gt;get('name')); var_dump($redis-&gt;ttl('name'));

三、set加鎖

<?php $redis->set('like',?'chuangxi',?['nx',?'ex'?=&gt;?10]); //$redis-&gt;del('like'); var_dump($redis-&gt;get('like')); var_dump($redis-&gt;ttl('like'));

四、防止死鎖

<?php $isLock = false; do {     $isLock = $redis->set('like',?'a',?['nx',?'ex'?=&gt;?10]); ????if($isLock)?{ ????????if($redis-&gt;get('like')?==?'a')?{ ????????????//執行邏輯 ????????????$redis-&gt;del('like'); ????????????continue; ????????} ????}?else?{ ????????usleep(5000); ????} }?while?(!$isLock); ? //redis事務 $redis-&gt;set(); $redis-&gt;watch(['number',?'like']);

相關推薦:redis視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享