5

我正在使用 RedisINCR为对象生成 ID。然后使用ZADDID 作为键来添加对象。

我是否需要担心是否有多个连接在执行同一代码块?说id:12如果两个连接同时连接并且都使用添加对象id:13,那么其中一个将丢失。

4

2 回答 2

11

由于 redis 是单线程的,这永远不会发生 - 一次只有一个客户端可以对数据库进行更改。

于 2013-05-21T18:58:19.697 回答
7

正如 Jonatan Hedborg 所说,Redis 是单线程的,所以你永远不必担心两个客户端同时做某事。另一方面,如果您担心要按顺序运行 INCR 和 ZADD 命令,并希望确保在它们之间没有运行其他命令,则可以使用transactions并保证您的命令作为一个单元,中间没有任何东西。

于 2013-05-21T20:47:39.297 回答