redis常见的加锁操作

树叶云

们经常用redis进行加锁操作,目的是为了解决并发可能带来的问题。但是使用redis加锁的方式有多种,本文对常见的几种方式进行解析

一、incr加锁

connect('127.0.0.1');
$redis->multi();
$redis->incr('number');
//$redis->decr('number');
//$redis->expire('number', -1);
var_dump($redis->get('number'));
var_dump($redis->ttl('number'));

二、setnx加锁

setnx('name''felix');
var_dump($redis->get('name'));
var_dump($redis->ttl('name'));

三、set加锁

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

四、防止死锁

set('like''a', ['nx''ex' => 10]);
 if($isLock) {
   if($redis->get('like') == 'a') {
     //执行逻辑
     $redis->del('like');
     continue;
   }
 } else {
   usleep(5000);
 }
} while (!$isLock);
 
//redis事务
$redis->set();
$redis->watch(['number''like']);

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/221111.html<

(0)
运维的头像运维
上一篇2025-04-14 21:24
下一篇 2025-04-14 21:25

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注