在 Node.js 中,最好为每个单独的 HTTP 请求或用户执行 createClient(),还是为所有请求重新使用相同的客户端更好?您仍然只用一个客户端就能获得多个并行客户端的速度吗?
最佳答案
In Node.js, would it be best to do a createClient() for each individual HTTP request or user, or would it be better to re-use the same client for all requests?
您应该重用 redis 客户端连接并在程序的生命周期内保持它,因为建立新连接会产生一些初始开销,这可以通过已经连接的客户端避免。
Do you still get the speed of several parallel clients with just one?
使用多个并行客户端池(数量有限,不是针对每个单独的 HTTP 请求或用户的专用连接),您可能会获得一些性能改进,但问题是您将如何处理已执行命令的并发性。尽管 redis 是为处理数百或数千个同时连接的客户端而构建的,但我认为连接池应该由您使用的客户端库控制。但是,如果您同时使用 Redis 监听某些发布/订阅 channel 并同时执行正常命令,则应使用两个并行连接。
关于Node.js:有多少 Redis 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561576/