关于nodejs下redis&47;mysql需不需要连接池的问题

mysql会为每个连接创建一个单独的线程来查询。不同于redis数据基本都在内存中,因为mysql会有大量的读取磁盘的IO操作,所以多个线程一起工作会比一个个查询要快。但是nodejs又是单线程的,它能不能同时发送多个请求到mysql服务器上呢?这里要理解nodejs的运作,虽然nodejs是一个主线程,但是它调用的IO指...
关于nodejs下redis&47;mysql需不需要连接池的问题
  mysql会为每个连接创建一个单独的线程来查询。不同于redis数据基本都在内存中,因为mysql会有大量的读取磁盘的IO操作,所以多个线程一起工作会比一个个查询要快。
  
  但是nodejs又是单线程的,它能不能同时发送多个请求到mysql服务器上呢?
  这里要理解nodejs的运作,虽然nodejs是一个主线程,但是它调用的IO指令等是通过另外的线程去做的,IO指令完成后就给主线程一个小任务片,也就是回调函数了。
  这里有个很关键的点就是,nodejs主线程一个,但是IO线程会有多个。
  因此如果用nodejs + mysql只用单个连接的话那么就利用不到mysql能同时服务多个查询的优势了。应该使用类似下图的运作方式,nodejs 使用多个连接来连接mysql。多连接是需要连接池的,有连接池就避免了每次连接都要去创建销毁的消耗了。2016-10-25
mengvlog 阅读 8 次 更新于 2025-07-20 05:38:42 我来答关注问题0
  •  翡希信息咨询 NodeJS 5分钟 连接 Redis 读写操作

    从GitHub获取Redis的.msi安装包。双击运行安装包,并勾选将Redis添加到全局环境变量中。安装完成后,可以通过终端输入rediscli命令进入Redis交互模式,验证安装是否成功。NodeJS项目初始化与Redis依赖安装:初始化一个新的NodeJS项目,使用命令npm init y。安装Redis的NPM包,使用命令npm install redis@4.1....

  •  文暄生活科普 NodeJS 5分钟 连接 Redis 读写操作

    127.0.0.1是本机IP;6379是Redis默认的端口号。写入数据使用set指令,key是键名,value是值。我设置了一个name,值为zhangsan。输入完按回车键,返回OK证明写入成功。读取数据使用get,key是键名。如果查到就返回值。如果你不清楚当前存了什么key,可以使用keys *来查询所有key。如果你有多个key,用上...

  •  文暄生活科普 NodeJS 5分钟 连接 Redis 读写操作

    写入数据使用set指令,键名和值分别为name和zhangsan。读取则使用get,键名指定后返回对应的值。若想查看所有键,可使用keys *。删除数据则通过del删除指定键,如name。在NodeJS项目中,初始化项目后,可以通过以下命令安装Redis依赖。不同版本的语法有所差异,如v2.8的set方法会自动打印结果,而v4.1则...

  •  湖北倍领科技 如何使用NODEJS+REDIS开发一个消息队列

    打开redis命令行,输入以下命令:publish roban:test:channel hello。发布这条信息后,sub端将输出以下信息:Robans-Pro:node robanlee$ node demo.js starting subscribe channel:roban:test:channel hello

  • mysql会为每个连接创建一个单独的线程来查询。不同于redis数据基本都在内存中,因为mysql会有大量的读取磁盘的IO操作,所以多个线程一起工作会比一个个查询要快。但是nodejs又是单线程的,它能不能同时发送多个请求到mysql服务器上呢?这里要理解nodejs的运作,虽然nodejs是一个主线程,但是它调用的IO...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部