Redis INCR和多个流程?

Mic*_*ael 3 redis

我曾经使用PostgreSQL序列SELECT nextval('number');来确保我得到一个新的数字,即使有几个客户端,因为nextval保证返回不同的和增加的值.

我想和Redis使用相同的机制.我想使用INCR命令,但我想确保我很清楚它会提供与nextval命令相同的保证吗?当多个进程运行此命令或我是否必须使用Redis锁时,没有获得相同数字的风险?

谢谢

Did*_*zia 7

Redis是一个单线程引擎,因此所有命令的执行都是序列化的.它总是为每个单独的命令提供原子性和隔离(在ACID意义上).

结果是应用单个INCR命令并利用其结果是安全的(即使多个连接同时执行).