redis的分布式锁

2020-07-22 redis

# 分布式锁

$rs = $redis->set($key, $value, array('nx', 'ex' => $ttl));
if ($rs) {
    //处理更新缓存逻辑
    // ......
    //删除锁
    $redis->del($key);
}
1
2
3
4
5
6
7

# 避免删除其他key,可以赋予值或者直接整不同的key

$rs = $redis->set($key, $random, array('nx', 'ex' => $ttl));
if ($rs) {
    //处理更新缓存逻辑
    // ......
    //先判断随机数,是同一个则删除锁
    if ($redis->get($key) == $random) {
        $redis->del($key);
    }
}
1
2
3
4
5
6
7
8
9
Last Updated: 9/28/2022, 4:14:54 PM