redis的分布式锁
dio 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
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
2
3
4
5
6
7
8
9