永发信息网

nodejs 使用redis 为什么不用连接池

答案:4  悬赏:40  手机版
解决时间 2021-04-04 15:27
nodejs 使用redis 为什么不用连接池
最佳答案
nodejs是个单线程的过程,异步处理很方便,redis又支持pipelining,通过异步处理,可以在复用一个连接的情况下完成大部分任务。返回顺序上,redis的请求永远都是先请求的先返回,所以负责发送的程序在发送的时候记个序号,然后按序号等相应返回结果就行了。不过吧,我觉得如果要用BRPOP这样的命令,没有连接池肯定不行啊……还有如果要用PUB/SUB的话,Subscribe也要占一个连接。
一般考虑用单连接还是多连接,主要看两个问题:
1. 我自己的程序是多线程还是单线程,如果是多线程,用多个连接、每个线程一个连接,编程起来要简单很多,可以直接使用同步socket的方式;单线程一般本身就是多路复用,用多个连接跟使用pipelining的编程复杂度是一样的。
2. 服务器端使用多个连接是否可以提高性能。这个取决于服务器端对pipelining(或者multiplexing)的支持。redis对pipelining的支持很好,用多个连接完全不能比单个连接快,只会占用更多的资源,所以尽量应当使用单个连接。而MySQL这样的协议对pipelining比较不友好,它是有状态转移的,在处理一个SQL的过程中可能需要发送/取回多次数据,这样只能一次处理一个SQL,用多个连接就可以有效提高并发度。其他协议也是一样的,比如HTTP/1.1虽然支持pipelining但是只能一个一个结果返回,而HTTP/2.0对multiplexing的支持很好,这样HTTP/1.1就应当使用多个连接,而HTTP/2.0就可以使用单连接。
全部回答
我明天开车过去,我直接导航就行啦!!!
谢谢楼主
我查了下,浙派琴筝(德清分部)的地址是在中兴南路与众安弄交叉口西北50米
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在美纽约男按摩师好找工作吗
抓住五官中的一个器官的特点来写,写出优点缺
这就是我们家去上学的方式英文
中国花样滑冰队都取得过哪些大赛的好成绩?
宋江为什么不推翻宋朝自己当皇帝
樱桃泡白酒有什么作用?
模仿迈克尔杰克逊的陆远涛现在干干什么去了?
You won’t me ,will you ?A. ask downB. l
youmaywonderwhetheritistrue什么意思
一般COSER的专业出身是什么,做COSER是主业吗
锦鲤鱼能顺利产下卵吗?
为什么有些图片放到PS里会自带参考线
nice to meet you 和 nice to see you 什么区
非得把人家张琼塑造成结巴子干啥
我遇到一个很贱的继母,告诉我怎么办
推荐资讯
Please tell me the way you thought of the
四川科目二单边桥是否取消
(2X+3)ˇ-3(2X+3)=4
大连开发区规划设计研究院怎样?工资待遇如何
看看是什么釉,什么时期的,现在价格如何!
华姓为什么读第四声
怎么制作分割字体图片,自己怎么制作创意美工
别再联系了别再给我打电话是什么意思
曼晶国际广场在什么地方啊,我要过去处理事情
别克昂科威1.5t领先型的usb怎么用
形容把东西掀翻,东北话zhou是哪个字
龋齿该怎么预防,有颗蛀牙想去补牙,邵阳雅贝
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?