在网络一篇教程上看到,node.js使用redis直接调用同一个redis对象连接即可,因为node.js是单线程的没问题(忽略某业务使用连接时间过长导致返回慢的问题).如果现在node.js使用PM2开启l了集群模式,还是使用一个redis对象,会不会出现问题?如果会出现问题,那么每一次读取或写入redis服务器里的数据,就要new一个新的redis连接,使用完成在关闭连接,感觉很浪费资源啊!
额 感觉帖子要沉啊
默认的使用redis时都是有连接池的
@Gitforxuyang node.js在连接redis没见有连接池的配置呢?
@iori2882 不好意思,我说错了。redis就是单连接的。 redis的性能够快,一般qps能达到10W级别,你们用的什么场景会效率跟不上呢?你如果想实现多个进程共用一个连接是可以的,但那样涉及到进程间通信,会比较麻烦而且影响性能。一般不推荐那么干。
redis config应该可以设置连接池的吧 自己去优化吧
@Gitforxuyang 对,问题就在这,我现在感觉PM2的cluster模式应该和redis本身的cluster模式实现原理应该是不一样的,所以我觉得在PM2集群模式下用长连接redis应该是没问题的,但这都是我猜的,网络也没找到相关资料
用同一个连接需要进程间通讯,效率下降。
PM2的cluster模式应该和redis本身的cluster模式实现原理一样的应该。
他们实质上都是多进程,你用的同一个redis对象实际上并不是同一个,你也没法在集群间直接共享数据,只能通过一些进程间通讯手段