CNode

请教:node.js使用PM2开启集群模式,可否使用一个redis对象连接?

问答
Iiori2882发布于8 年前最后回复8 年前8 回复3777 浏览0 收藏

在网络一篇教程上看到,node.js使用redis直接调用同一个redis对象连接即可,因为node.js是单线程的没问题(忽略某业务使用连接时间过长导致返回慢的问题).如果现在node.js使用PM2开启l了集群模式,还是使用一个redis对象,会不会出现问题?如果会出现问题,那么每一次读取或写入redis服务器里的数据,就要new一个新的redis连接,使用完成在关闭连接,感觉很浪费资源啊!

查看回复

回复 (8)

P
phper-chen#1·8 年前

redis config应该可以设置连接池的吧 自己去优化吧

I
iori2882#2·8 年前
引用 Gitforxuyang@iori2882 不好意思,我说错了。redis就是单连接的。 redis的性能够快,一般qps能达到10W级别,你们用的什么场景会效率跟不上呢?你如果想实现多个进程共用一个连接是可以的,但...

@Gitforxuyang 对,问题就在这,我现在感觉PM2的cluster模式应该和redis本身的cluster模式实现原理应该是不一样的,所以我觉得在PM2集群模式下用长连接redis应该是没问题的,但这都是我猜的,网络也没找到相关资料

I
iori2882#3·8 年前

额 感觉帖子要沉啊

G
Gitforxuyang#4·8 年前

默认的使用redis时都是有连接池的

I
iori2882#5·8 年前
引用 Gitforxuyang默认的使用redis时都是有连接池的

@Gitforxuyang node.js在连接redis没见有连接池的配置呢?

G
Gitforxuyang#6·8 年前
引用 iori2882@Gitforxuyang node.js在连接redis没见有连接池的配置呢?

@iori2882 不好意思,我说错了。redis就是单连接的。 redis的性能够快,一般qps能达到10W级别,你们用的什么场景会效率跟不上呢?你如果想实现多个进程共用一个连接是可以的,但那样涉及到进程间通信,会比较麻烦而且影响性能。一般不推荐那么干。

用同一个连接需要进程间通讯,效率下降。

A
AnzerWall#8·8 年前

PM2的cluster模式应该和redis本身的cluster模式实现原理一样的应该。

他们实质上都是多进程,你用的同一个redis对象实际上并不是同一个,你也没法在集群间直接共享数据,只能通过一些进程间通讯手段

参与回复
登录后即可参与回复。登录