当爬取数据时候,咱们可能须要缓存大量的数据,可是又无须任何复杂的链接操做,所以咱们将选用NoSQL数据库,这种数据库比传统的关系型数据库更易于操做,这里我想主要说一下目前很是流行的MongoDB做为缓存数据库。mongodb
NoSQL(NoSQL = Not Only SQL ),意即"不只仅是SQL"。NoSQL,指的是非关系型的数据库。数据库
在现代的计算系统上天天网络上都会产生庞大的数据量。编程
这些数据有很大一部分是由关系数据库管理系统(RDMBS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。json
经过应用实践证实,关系模型是很是适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术,然而,对于大多数据集的状况,数据量太大使其难以存放在单一服务器上,此时就须要扩展到多台服务器上。不过,关系模型对于这种扩展的支持并不够好,由于在查询多个表时,数据可能在不一样的服务器上,相反,NoSQL数据库一般是无模式的,从设计之初就考虑了跨服务器无缝分片的问题。在NoSQL中,有多种方式能够实现该目标,分别是列数据存储(如Hbase),键值对存储(如Redis),面向文档的数据库(如MongoDB)以及图形数据库(如Neo4j).windows
——高可扩展性数组
——分布式计算缓存
——低成本服务器
——架构的灵活性,半结构化数据网络
——没有复杂的关系数据结构
——没有标准化
——有限的查询功能(到目前为止)
——最终一致是不直观的程序
类型 | 部分表明
|
特色 |
列存储 | Hbase Cassandra Hypertable |
顾名思义,是按列存储数据的。最大的特色是方便存储结构化和半结构化数据,方便作数据压缩,对针对某一列或者某几列的查询有很是大的IO优点。 |
文档存储 |
MongoDB CouchDB |
文档存储通常用相似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段创建索引,实现关系数据库的某些功能。 |
key-value存储 |
Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis |
能够经过key快速查询到其value。通常来讲,存储无论value的格式,照单全收。(Redis包含了其余功能) |
图存储 |
Neo4J FlockDB |
图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,并且设计使用不方便。 |
对象存储 |
db4o Versant |
经过相似面向对象语言的语法操做数据库,经过对象的方式存取数据。 |
xml数据库 |
Berkeley DB XML BaseX |
高效的存储XML数据,并支持XML的内部查询语法,好比XQuery,Xpath。 |
好了,说完了NoSQL,那么对非关系型数据库有了简单的理解,那下面具体的介绍一下MongoDB
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的状况下,添加更多的节点,能够保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档相似于 JSON 对象。字段值能够包含其余文档,数组及文档数组。
————MongoDB 是一个面向文档存储的数据库,操做起来比较简单和容易。
————你能够在MongoDB记录中设置任何属性的索引 来实现更快的排序。
————你能够经过本地或者网络建立数据镜像,这使得MongoDB有更强的扩展性。
————若是负载的增长,它能够分布在计算机网络中的其余节点上(这就是所谓的分片)。
————Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
————MongoDb 使用update()命令能够实现替换完成的文档(数据)或者一些指定的数据字段 。
————Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操做。
————Map和Reduce。Map函数调用emit(key,value)遍历集合中全部的记录,将key与value传给Reduce函数进行处理。
————Map函数和Reduce函数是使用Javascript编写的,并能够经过db.runCommand或mapreduce命令来执行MapReduce操做。
————GridFS是MongoDB中的一个内置功能,能够用于存放大量小文件。
————MongoDB容许在服务端执行脚本,能够用Javascript编写某个函数,直接在服务端执行,也能够把函数的定义存储在服务端,下次直接调用便可。
————MongoDB支持各类编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
————MongoDB安装简单。
能够在mongodb官网下载该安装包,地址为:https://www.mongodb.com/download-center#community。
第一步:点击安装:mongodb-win32-x86_64-2008plus-ssl-3.0.1-signed.msi
第二步:赞成协议
第三步:自定义安装
第四步:继续下一步
第五步:完成
首先,建立数据库文件的存放位置
好比d:/mongodb/data/db。启动mongodb服务以前须要必须建立数据库文件的存放文件夹,不然命令不会自动建立,并且不能启动成功。
打开cmd(windows键+r输入cmd)命令行,进入D:\mongodb\bin目录(如图先输入d:进入d盘而后输入cd d:\mongodb\bin),
输入以下的命令启动mongodb服务:
D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db
而后输入
mongod.exe --dbpath=d:\db
最后启动服务
net start mongodb