非关系型数据库(NoSQL)——复述,安装及部署详解

  

在现在的互联网大潮中,NoSQL可谓是家喻户晓,复述,作为NoSQL中及其重要的一员,使我们走向架构道路的一条必经之路。作为运维工程师来说,是必须要掌握的!

  

既然提到了复述,数据库是非关系型数据,并且需要掌握复述,数据库。那么关于关系型数据库与非关系型数据库的基本概念是必须要了解的。

  

一、关系型数据库与非关系型数据库的基本概念:

  

数据库按照其结构可以分为关系型数据库与其他数据库,而这些其他数据库,我们统称为非关系型数据库。

  

1。关系型数据库

  

关系型数据库是一个结构化的数据库,创建在关系模型基础上,一般面向记录。它借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织,现实世界中,各种实体与实体之间的各种联系都可以用关系模型来表示. sql(结构化查询语言)语句就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。

  

主流的关系型数据库包括甲骨文,MySQL, SQL Server, Microsoft Access, DB2等。

  

2。非关系型数据库

  NoSQL:

<强> 意思是“不仅仅是SQL”,是非关系型数据库的总称。主流的NoSQL数据库有复述,MongDB, Hbase, CouhDB等。这些数据库,他们的存储方式,存储结构以及使用场景都是完全不同的,所以我们认为它是一个非关系型数据库的集合,而不是像关系型数据库一样,是一个统称。简单来说:主流的关系型数据库之外的数据库,都可以成为非关系型数据库.NoSQL数据库凭借着其非关系型,分布式,开源和横向扩展等优势,被认为是下一代数据库产品。

  

3。非关系型数据库产生背景:

  

关系型数据库已经诞生很久了,而且我们一直都在使用,没有发生有什么问题,面对这样的情况,为什么还能产生非关系型数据库?

  

随着Web 2.0网站的兴起,关系型数据库在应对Web 2.0网站,特别是海量数据和高并发的SNS(社交网络服务)类型的Web 2.0网站时,暴露出很多难以解决的问题。主要的就是三高问题:

  
1)对数据库高并发读写需求h5> Web 2.0网站会根据用户的个性化信息来实时生成动态页面和提供动态信息,因此,无法使用动态页面静态化技术,所以数据库的并发负载非常高,一般会达到10000次/s以上的读写请求。关系型数据库对于上万次的查询请求还是可以勉强支撑的。当出现上万次的写数据请求时,硬盘I/O就已经无法承受了。对于普通的BBS网站,往往也会存在高并发的写数据请求。比如:爆料明星等,就会有很多人评论。结果很有可能因为流量过大而引起网站瘫痪。

  
2)对海量数据高效存储于访问需求h5> 类似于大型的社交网站,比如:Facebook, Friendfeed等。每天都会产生大型的用户动态信息,例如:Facebook一个月就会产生2.5亿条用户动态信息。对于关系型数据库来说,在一个包含2.5亿条记录的表中执行SQL查询。效率是非常低的。

  
3)对数据库高可扩展性与高可用需求h5> 在Web架构中,数据库是最难进行横向扩展的。当应用系统的用户量与访问量与日俱增时,数据库是没办法像Web服务器一样,简单得通过添加硬件和服务器节点来扩展其性能和负载能力的。尤其对于一些需要24小时对外提供服务器的网站来说,数据库的升级与扩展往往会伴随着停机维护与数据迁移,其工作量是非常庞大的。

  

关系型数据库和非关系型数据库都有各自的特点与应用场景。两者的紧密结合将会给Web 2.0的数据库发展带来新的思路。<强>让关系型数据库关注在关系上,非关系型数据库关注在存储上。

  

通过以上内容,大致可以了解到非关系的一些基本概念,接下来进一步的了解——<强>复述,数据库

  

二,复述,数据库基础

  

1.复述,服务器简介

  

复述是一个开源的,使用C语言编写,支持网络,可基于内存亦可持久化的日志型,键值(键值对)数据库,是目前分布式架构中不可或缺的一环。

  

复述,服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个复述,进程,而复述的实际处理速度则完全依靠于主进程的的执行效率。若在服务器上只运行一个复述,进程,当多个客户端同时访问时,服务器的处理能力会有一定程度的下降,若在同一台服务器上开启多个复述,进程,复述,在提高并发处理能力的同时会给服务器的CPU造成很大压力。也就是说,在实际生产环境中,需要根据实际的需求来决定开启多少个复述,进程。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程。若CPU资源比较紧张,采用单进程即可。

非关系型数据库(NoSQL)——复述,安装及部署详解