setnx命令,如果有该key值,则设置失败;没有该key设置成功。
但由于setnx命令没有过期时间,需要额外对key设置过期时间,但是这是两个操作,不能保证其原子性。
如下操作可以保证原子性,并能达到与setnx一样的效果。
set key value [ex seconds] [px millisecods] [nx|xx]
ex seconds:设置过期时间为seconds秒
px millisecods:设置过期时间为milliseconds毫秒
nx 只有在键不存在时,才对键进行设置操作。
xx 只有在键存在时,才对键进行设置操作。
set操作成功完成时,返回ok,否则返回nil。
如下
set key1 value1 ex 100 nx