单个redis客户端连接是否支持并发读写?

时间:2016-04-28 06:57:47

标签: javascript mysql node.js redis

我对redis很新,这一直让我很好奇。

我在nodejs(npm' s redis包)中使用了一个redis客户端连接,该连接包含在我的每个文件中。

比如说:文件a.js用于从mysql读取并将数据插入redis散列,文件b.js从redis散列读取并输出结果。

现在在生产环境中,我有大量请求提交到服务于内容的b.js文件,在我之间有一些请求被发送到a.js文件以便动态更新内容。

我想知道对a.js的请求是否会降低b.js中已经运行的redis连接的速度。

3 个答案:

答案 0 :(得分:2)

Redis是单线程的,所以如果它正在忙着写数据,那么你的读取将被延迟。

您可以在此SO答案中找到更多信息:Redis is single-threaded, then how does it do concurrent I/O?

答案 1 :(得分:0)

Redis是单线程,然后没有并发读/写。如果有两个客户端连接发送命令到redis,它们将排队。

然后是的,如果a.js向Redis发送了很多命令,b.js命令将被插入a.js命令之间

答案 2 :(得分:0)

不,连接速度不会慢下来。减速的是redis的响应时间。但我怀疑你会注意到,因为我们正在谈论每个请求几微秒。