Redis INCR和多个流程?

时间:2014-10-18 15:31:32

标签: redis

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

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

由于

1 个答案:

答案 0 :(得分:6)

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

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