我正在尝试使用Redis的set命令来实现最简单的分布式锁组件,但是我无法通过官方文档找到有关原子性的确切依据,Redis的SET key value [EX seconds] [PX milliseconds] [NX|XX]命令是否是原子操作?
set
SET key value [EX seconds] [PX milliseconds] [NX|XX]
是。其核心是单线程的,因此 没有 将运行,直到SET完成; 这使得SET {key} {value} EX {expiry} NX非常适合简单的锁定。
SET
SET {key} {value} EX {expiry} NX