Redis怎么实现分布式锁?

提问者:帅平 问题分类:面试刷题
Redis怎么实现分布式锁?
1 个回答
到头来只是玩笑一场
到头来只是玩笑一场
Redis实现分布式锁,是当前应用最广泛的分布式锁实现方式。
Redis执行命令是单线程的,Redis实现分布式锁就是利用这个特性。
实现分布式锁最简单的一个命令:setNx(set if not exist),如果不存在则更新:
setNx resourceName value

加锁了之后如果机器宕机,那我这个锁就无法释放,所以需要加入过期时间,而且过期时间需要和setNx同一个原子操作,在Redis2.8之前需要用lua脚本,但是redis2.8之后redis支持nx和ex操作是同一原子操作。
set resourceName value ex 5 nx
发布于:4个月前 (02-29) IP属地:未知
我来回答