gpt4 book ai didi

node.js - 一个 Redis 连接可以为一千个并发用户提供服务吗?

转载 作者:行者123 更新时间:2023-12-03 06:44:39 24 4
gpt4 key购买 nike

上下文:我正在构建一个将由 1000 个用户同时访问并使用 Redis 作为数据库的应用程序。我正在使用 node-redis客户。我读到建议从应用程序的每个实例只打开一个或几个连接,因为打开连接的成本很高。

问题:假设客户端向Redis发送命令。当应用程序需要发送另一个命令时,此命令正在传输到 Redis 或正在执行(基本上,未完成)。客户端是等待第一个命令完成还是立即向 Redis 发送第二个命令?

这很重要,因为如果客户端等待,应用程序将无法真正充分利用异步,并且当来自一千个用户的命令试图访问 Redis 时,网络调用将成为一个很大的瓶颈。最好命令已经在 Redis 中排队,而不是让它们等待较早的命令完成后再通过网络。

谢谢!

最佳答案

它基于 Redis 客户端的实现方式。

在 Redis 服务器端,所有命令都是可序列化执行的。所以单连接对于Redis服务器来说不会有问题。

在客户端,如果您的框架使用阻塞式 TCP 连接(如 Jedis),那么很少的连接将成为瓶颈,因为您的命令将在客户端被阻塞以等待空闲连接。

但是如果客户端使用的是 async/nio(比如 Lettuce),那么单个连接就可以了,因为连接可以在线程之间重用。

此外,数以千计的并发用户对 Redis 来说不是问题,但如果您使用单个 Web 服务器,您还应该关注 Web 服务。

关于node.js - 一个 Redis 连接可以为一千个并发用户提供服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63419992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com