Redis的set命令是原子操作吗?

Is Redis' set command an atomic operation?

我正在尝试使用Redis的set命令实现一个最简单的分布式锁组件,但是我通过官方文档找不到任何关于原子性的确切依据,是Redis的SET key value [EX seconds] [PX milliseconds] [NX|XX] 命令一个原子操作?

是的。核心是单线程的,所以 nothing 将 运行 直到 SET 完成;这使得 SET {key} {value} EX {expiry} NX 成为简单锁定的理想选择。