b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

dat视频文件如何打开方式 Node.js+MongoDB的环境搭建+学习实例

电脑杂谈  发布时间:2018-02-12 18:32:21  来源:网络整理

iphone打开dat文件_dat视频文件如何打开方式_dat文件用什么软件打开

春节前闲来无事,整理了一下以前学习的Node.js和NoSql的资料,总结了自己一路踩过来的坑,希望能对初学者有帮助。

在开发环境搭建和实例编写之前,还是需要先了解一下基本概念。

参考文章:

1. 目前流行的几个NoSql对比

2. 深入了解MongoDB的mmap(内存映射文件)的原理

3. MongoDB命令

4. Node.js的概念

5. 事件循环,Node.js的核心概念

6. JavaScript:彻底理解同步,异步和事件循环

7. nodejs async库使用

长篇大论的概念我就不复述了,用几句简单的话来概括一下重点:

1. NoSql

NoSql=not only sql,与传统关系型的最大区别在于,不能JOIN,且保存的数据没有固定的格式,常见的如MongoDB以key-value形式进行存储。

与传统如MySql是硬盘+关系型相反,NoSql是内存+非关系型。

硬盘的数据可靠性高,因为数据是直接写入硬盘。内存读写速度更快,因为是直接通过内存进行存取,但是需要定期写回到硬盘,这就导致在存入内存到写入硬盘的时间内,如果系统崩溃,会导致数据丢失,可靠性会降低,虽然有通过日志在启动后进行恢复的方法,但是多少还是会影响体验。

所以到底是用关系型还是NoSql,还是要根据场景进行分析,不能一概而论。

2. MongoDB

内存映射文件是OS通过mmap在内存中创建一个文件,并直接映射到虚拟内存。在数据操作的时候,OS会把需要操作的数据直接映射到物理内存中。

MongoDB通过journal进行故障恢复和持久化,系统在内存中分配一块区域给journal使用,称为private view。每隔100ms会刷新privateview到journal。因此发生故障时,丢失的也只是100ms的数据而已。但是开启journal后,虚拟内存的使用也会倍增。dat视频文件如何打开方式

3. Node.js

Node是服务器程序。本身运行的是Google的V8引擎,用于解释Javascript。它可以直接用Javascript写后台程序,使前台开发者也能快速开发后台代码,即HTML+Javascript+MongoDB,而无需像Tomcat的前台(HTML+Javascript)+后台(Java)+(MySql)。

与Java等不同的是它连接到服务器的方式:

Java是多线程的,一个连接就是一个新线程,每个线程需要2M的配套内存的话,8G内存就只能维持4000个用户,想要达到更高的连接数只能增加增加服务器。

Node.js是单线程的,它支持数万的并发,在处理非计算型高密集I/O请求时,可以有更好的表现。

为什么是非计算型?

因为Node.js虽然称为单线程,但并不意味着只有一个线程在进行处理,单的是主线程,还有其他如Ajax线程,MongoDB线程进行其他的处理。

如当主线程调用Ajax线程时,主线程并不是等待Ajax线程返回结果,而是直接跳到下一步操作,Ajax线程结束后会去执行它的回调函数,这是同步和异步的差异。

此时,主线程可以去做其他的请求。

借一张图来说明处理的流程:

但是如果主线程的计算量很大,由于是单线程的关系,其他请求就无法进入主线程了。

为什么用内存(MongoDB)?

用Node.js就是追求性能和并发,而传统的关系型(如MySql)在读写性能方面不如内存,如果是Node.js+关系型的话,这边势必将称为I/O的瓶颈。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-74050-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...