您的位置:首页 > 数据库 > Redis

Redis系列-好玩的用法

2015-09-18 19:51 399 查看

分布式锁

客户端执行如下命令,来获取锁和释放锁。

random = random()
ok = (Set key random PX 2000ms NX)
if (ok) {
//do something
if (redis->get(key) == random) {
(del key)
}
}

key不存在时设置,过期时间是2000ms。如果命令成功,表示获取锁成功。

设置过期时间是为了解决获得锁的客户端意外终止产生死锁现象。释放锁时,先判断key的value是否是自己生成的,如果是再删除锁。这是为了避免因操作超时,锁被自动释放,其他客户端已经获取了锁,当前客户端误删锁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: