setnx是原子操作吗