十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如何玩转 NoSQL数据库?作者:IT专家网
创新互联建站专注于江南企业网站建设,响应式网站,成都商城网站开发。江南网站建设公司,为江南等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
Weather公司CIO Bryson Koehler整理出了MongoDB,Riak和Cassandra等NoSQL数据库的特性。他指出这其中最重要的特性是“NoSQL不会限制住你”。
Weather公司,致力于天气报告和天气预报业务,其并不缺乏数据,当然也不缺乏数据管理工具。但它为什么需要三种不同的NoSQL数据库?
最近,我向Weather 公司的CIO Bryson Koehler提出了这个疑问,除了公司的CIO,Bryson Koehler还是其他很多业务单元的孵化者,包括Weather Channel,WeatherFX,Weather Underground,和Intellicast等。Weather公司每天获取和处理着约20万亿字节数据,对外提供当前全球天气状况,并为航空公司,紧急服务,货运商,公用事业,保险,以及在线天气网站和天气应用程序的用户提供天气预报服务。每天需求增加了数十亿的天气数据请求,并且预期响应时间要在10毫秒左右。
Riak是Weather 公司的后台NoSQL数据库,服务于公司的事务性存储公用网络(SUN)数据获取平台,它运行在多个亚马逊网络服务(AWS)的可用区域上,并以每小时15次的频率捕获超过20亿气象数据信息,。所以,Riak具有明确的处理规模,但该公司也使用Cassandra以及新近添加的MongoDB数据库,为Weather.com 上IOS和Android移动应用程序服务。
Weather 公司使用了不同的产品,Koehler解释说,因为“不同的工具有不同的优势。
Cassandra,它服务于Weather 公司以及全球消费者使用的第三方天气应用的API数据:“我们的数据分发平台每秒处理数十万的事务,我们发现Cassandra在用于全球分发数据上是一个很棒的解决方案,并且在[数据库]读取方面体现出很高的可用性 “。它本质上为全球各地消费者所使用的数据服务,包括Weather 公司和第三方的天气应用程序。
MongoDB,它提供了Weather.com网站和移动应用程序的中间层缓存功能:“离开我们的核心API,我们还没有全部Weather.com内容,所以MongoDB是容器和分发站,为Weather.com以及Android和iOS上的移动应用程序服务。Mongo有很多好处,这些好处基于其内建的JSON格式以及灵活性上。“
Riak,用于消费气象数据和观测,包括来自世界各地的图片和视频等:“我们喜爱Riak因其优秀的数据摄取能力,而且是以一种全球分布式的方式来实现。这对于从全球分布式平台上获取数据的入站式数据库是一个真正可靠的选择。
我曾听说Datastax,Basho和Couchbase的高管贬低MongoDB的可扩展性,但MongoDB指向大规模部署,在Facebook对超过200万台移动设备上应用程序提供支持,在eHarmony公司,MongDB每天处理着数十亿的潜在比赛预约。据Koehle所述,MongoDB为Weather.com和Weather.com移动应用程序处理着“每天十亿交易”,“毫无疑问,你可以通过配置和部署Mongo来处理大批量的交易数据。”
尽管如此,Koehler承认,他将“很乐于看到MongoDB继续使全球集群和多位置[功能]更加无缝化且易于使用。” 这些属于全球性的分布式集群,复制和负载平衡是Cassandra和Riak众所周知的功能。
从规模讨论的角度来看,很少有公司达到Weather公司的经营规模。易于开发,架构灵活性和JSON数据处理使得MongoDB的成为世界上最流行的NoSQL数据库。这就是为什么微软和IBM都进行了MongoDB的模仿,如微软的Azure DocumentDB和IBM的 Cloudant,而不是Cassandra和Riak。
Weather公司可以从三个NoSQL标准降低至两个的过程中得到巩固,Koehler说,但公司没有准备好这么做。
“由于我们构造了由许多不同的数据解决方案组成的网状结构,我们目前的环境已过于复杂,”他说。“我们希望给团队一些自由的空间,让我们可以了解所有选择的利弊,但你将会看到一些整合。”
到了那个时候,迁移将不在是一件难事,因为“关于NoSQL数据库最重要的事情是,你不会被困在其中,” Koehler说。“如果你的架构和编码正确,从一个数据库迁移到另一个并不难。随着模式的自由以及数据转存技术的发展,无论前者是一个key-value存储或其他什么形式,转储数据都将十分容易。“
对特定产品进程自定义编码的复杂的存储过程已经一去不复返了,Koehler说,但关于“结构化和编码正确”还有很多需要考虑的地方?这样做是为了避免特殊供应商提供的工具和功能可能让你身陷其中。他举了亚马逊网络服务“(AWS)的消息服务为例。
“你不必让服务在云中运行,”他解释说。“你可以只部署自己的RabbitMQ的环境,而不是陷于其中,所以你可以将一个原先部署在AWS 上的应用程序转而部署在谷歌计算云服务上。无论它是数据平台,存储环境,或云计算环境,都要小心别让自己局限在一个仅由一个供应商提供的小范围空间内“。
转载
答案:A
1.文档型数据库
作为最受欢迎的NoSQL产品,文档型数据库MongoDB当仁不让地占据了第一的位置,同时它也是所有NoSQL数据库中排名最靠前的产品(总排行榜第七名)。Apache基金会的CouchDB排在第二,基于.Net的数据库RavenDB排在第三,Couchbase排在第四。
2.键值(Key-value)数据库
键值(Key-value)数据库是NoSQL领域中应用范围最广的,也是涉及产品最多的一种模型。从最简单的BerkeleyDB到功能丰富的分布式数据库Riak再到Amazon托管的DynamoDB不一而足。
在键值数据库流行度排行中,Redis不出意外地排名第一,它是一款由Vmware支持的内存数据库,总体排名第十一。排在第二位的是Memcached,它在缓存系统中应用十分广泛。排在之后的是Riak、BerkeleyDB、SimpleDB、DynamoDB以及甲骨文的Oracle NoSQL数据库。值得注意的是,Oracle NoSQL数据库上榜不久,得分已经翻番,上升势头非常迅猛。
3. 列式存储
列式存储被视为NoSQL数据库中非常重要的一种模式,其中Cassandra流行度最高,它已经由Facebook转交给到Apache进行管理,同时Cassandra在全体数据库排名中排在第十位,紧随MongoDB成为第二受欢迎的NoSQL数据库。基于Hadoop的Hbase排在第二位,Hypertable排在第三。而Google的BigTable并未列入排名,原因是它并未正式公开。
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
Memcache Memcache Redis Redis MongoDB MongoDB 列式数据库 列式数据库 Hbase Hbase
HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。
HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。
Cassandra Cassandra
Apache Cassandra是一款免费的开源NoSQL数据库,其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。
主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)
NoSQL与关系型数据库设计理念比较关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。特点:它们可以处理超大量的数据。它们运行在便宜的PC服务器集群上。它们击碎了性能瓶颈。没有过多的操作。Bootstrap支持缺点:但是一些人承认,没有正式的官方支持,万一出了差错会是可怕的,至少很多管理人员是这样看。此外,nosql并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验
首先需要Linux相关知识,推荐Linux实战教程:
解压成功之后,便可以看到一个redis-6.2.5的文件夹,文件夹中有如下文件:
成功安装如下
redis默认安装的路径为 /usr/loacl/bin ,进入文件夹则发现redis文件:
首先必须在 /usr/local/bin 这个目录下,启动redis服务。启动服务的命令 redis-server northconfig/redis.conf