在开始提到Redis分布式锁之前,我想跟大家聊点Redis的基础知识。
说一下Redis的两个命令:
SETNX key value
setnx
是SET if Not eXists(如果不存在,则 SET)的简写。
用法如图,如果不存在set成功返回int的1,这个key存在了返回0。
SETEX key seconds value
将值 value
关联到 key
,并将 key
的生存时间设为 seconds
(以秒为单位)。
如果 key
已经存在,setex
命令将覆写旧值。
有小伙伴肯定会疑惑万一set value 成功 set time失败,那不就傻了么,这啊Redis官网想到了。
setex
是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成。
我设置了10秒的失效时间,ttl命令可以查看倒计时,负的说明已经到期了。
跟大家讲这两个命名也是有原因的,因为他们是Redis实现分布式锁的关键。