gpt4 book ai didi

node.js - 如何在 nodejs/express 中(重新)使用 redis 客户端连接?

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:39 26 4
gpt4 key购买 nike

举个简单的例子:

var express = require("express")
var redis = require('redis')
var app = express()

var client = redis.createClient()

app.get('/', function(req, res) {
req.connection.setTimeout(2 * 1000)
client.set("test", 1, function (err, resp) {
res.send('Hello World')
})
})

app.listen(80)

不需要为每个请求重新建立 Redis 连接,对吗?

需要使用redis连接池吗?

最佳答案

回复incarnate的连接池帖子:

您好——首先澄清一下,Redis 服务器单线程的。

您在命令排序方面看到的是您使用异步方式的产物,与 node_redis 库或 Redis 本身无关。

使用 node_redis 连接池绝对不需要。您当然可以使用它,但不建议这样做。连接池会降低 Redis 流水线的效率,并且由于 Redis 协议(protocol)的状态特性,某些命令可能会出现问题。

原因 #1:我不确定这是否重要,或者是否可能因为创建额外的客户端而造成额外的 GC 负担而变得更糟。

原因 #2:这不是它真正的工作原理。 Redis 服务器是单线程的。如果您在服务器上等待,则所有客户端都在服务器上等待。如果您在 javascript 中被阻止,则该进程中的所有客户端都在 javascript 中被阻止。

原因 #3:node_redis 库已在失败后重新连接。

关于node.js - 如何在 nodejs/express 中(重新)使用 redis 客户端连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16295194/

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