AFAIK redis是单线程的,它在后台使用了事件循环。我想了解两件事:
SET mykey "Hello" (first command)
GET mykey (second command)
如果尚未执行set命令,则第二条命令有可能返回nil。正确吗?
答案 0 :(得分:0)
Redis是单线程的,这意味着所有命令都应该是原子的。有关详细信息
在上述示例中;如果首先执行SET命令,则GET命令将等待,直到SET完成;否则,将执行SET命令。如果首先执行GET命令,则它将返回nil,然后将执行SET。因此,每个命令执行都是原子的。
请参阅文档; https://redis.io/topics/faq。
ps:对于redis4.0,它具有一些多线程功能;请参阅文档以获取详细信息