Heim  >  Artikel  >  Datenbank  >  常用NoSQL比较

常用NoSQL比较

WBOY
WBOYOriginal
2016-06-07 17:09:561096Durchsuche

公司最近正在做NoSQL选型,通过一周的时间对几种常用的NoSQL做了以下粗略的分析和比较

公司最近正在做NoSQL选型,通过一周的时间对几种常用的NoSQL做了以下粗略的分析和比较

名词解释:

分布式存储单元:在分布式存储中,通常要把比较大的数据文件切割成不同的块,以便放到不同的机器上分开存储,每一个分割块称之为一个存储单元。

一、CouchDB

CouchDB是一种面向文档(document-oriented)的nosql数据库,文档的存储格式通过JSON进行描述,在结构部署上采用的是peer-based方式,即每台机器在功能上来讲是同等重要的,没有master和slave的区分,所存储的数据也都是相同的(没有做到数据的分布式存储),类似于Subversion中版本库和工作拷贝的概念。

官方文档中所声明的功能特性主要有以下几个方面:

1.多平台部署,,包括Android和iOS

2.出色的数据完整性和可靠性支持

3.对BLOB数据类型提供原生支持

4.基于文档的版本管理功能

5.框架自带MapReduce组件

6.query查询支持(通过javascript)

7.提供Java API和REST API

优势:

多平台支持(移动平台)

在数据量较小的情况下,可作为单机版离线使用,而在必要的时候进行联网更新。

二、Redis

Redis是一种基于key-value存储格式的nosql数据库,在结构部署上采用了master/slave的方式,其中slave节点起到备份的作用,当master节点出现问题的时候,slave节点可替换成master,从而确保了系统安全稳定的特性。

分布式存储单元:slot(一组key/value存储记录的集合)

一个cluster里面可能会有多个matser节点,master节点通过互相通信来记录彼此之间所存储的slot信息,从而确保了client端可以通过任何master节点定位到需要的slot,获取到slot信息后,client端还会将该slot地址缓存到本地,从而加快了下次查询的效率。

部署结构如图所示:

注:图中没有画出slave节点(slave只是起到备份master的作用),所有的圆圈全部为master,并且master之间的通信呈网状结构。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn