node-redis 有人做过长连接或者连接池吗?
发布于 9 年前 作者 zacard-orc 12713 次浏览 最后一次编辑是 8 年前 来自 问答

官方推荐用法如下,但是是个短链接,抓包已能确认,非常影响性能。有大侠自己改过长连接或者连接池吗?如何避免变量污染的问题? var redis = require(“redis”), client = redis.createClient();

// if you'd like to select database 3, instead of 0 (default), call
// client.select(3, function() { /* ... */ });

client.on("error", function (err) {
    console.log("Error " + err);
});

client.set("string key", "string val", redis.print);
client.hset("hash key", "hashtest 1", "some value", redis.print);
client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
client.hkeys("hash key", function (err, replies) {
    console.log(replies.length + " replies:");
    replies.forEach(function (reply, i) {
        console.log("    " + i + ": " + reply);
    });
    client.quit();
});
8 回复

没有重新连接吧… 最近刚好在看ioredis,是在createClient的时候构造了一个连接,然后其他操作都只是在stream上面write的buffer。。 get和set的测试对比来看node_redis不应该是短连接形式的。

redis貌似只运行一个实例,不存在连接池吧,node里面模块是常驻内存的,一个连接可以复用

https://github.com/luin/ioredis 这里有计划搞连接池,看 roadmap 部分。不过 redis 随便一用都有 10万ops每秒吧。 你们的场景量好大啊

redis应该只会连接一次吧。

@alsotang 谢谢大牛。主要是TCP建连太花时间了

@wangyangkobe 不quit是一次,但是否连接复用,我今天再测一下

@captainblue2013 是否连接复用,今天再测试下

回到顶部