有哪些轻型的非关系型数据库?

有哪些轻型的非关系型数据库?,第1张

常见的非关系型数据库有:1、mongodb;2、cassandra;3、redis;4、hbase;5、neo4j。其中mongodb是非常著名的NoSQL数据库,它是一个面向文档的开源数据库。

常见的几种非关系型数据库:

1、MongoDB

MongoDB是最著名的NoSQL数据库。它是一个面向文档的开源数据库。MongoDB是一个可伸缩和可访问的数据库。它在c++中。MongoDB同样可以用作文件系统。在MongoDB中,JavaScript可以作为查询语言使用。通过使用sharding MongoDB水平伸缩。它在流行的JavaScript框架中非常有用。

人们真的很享受分片、高级文本搜索、gridFS和map-reduce功能。惊人的性能和新特性使这个NoSQL数据库在我们的列表中名列第一。

特点:提供高性能;自动分片;运行在多个服务器上;支持主从复制;数据以JSON样式文档的形式存储;索引文档中的任何字段;由于数据被放置在碎片中,所以它具有自动负载平衡配置;支持正则表达式搜索;在失败的情况下易于管理。

优点:易于安装MongoDB;MongoDB Inc.为客户提供专业支持;支持临时查询;高速数据库;无模式数据库;横向扩展数据库;性能非常高。

缺点:不支持连接;数据量大;嵌套文档是有限的;增加不必要的内存使用。

2、Cassandra

Cassandra是Facebook为收件箱搜索开发的。Cassandra是一个用于处理大量结构化数据的分布式数据存储系统。通常,这些数据分布在许多普通服务器上。您还可以添加数据存储容量,使您的服务保持在线,您可以轻松地完成这项任务。由于集群中的所有节点都是相同的,因此不需要处理复杂的配置。

Cassandra是用Java编写的。Cassandra查询语言(CQL)是查询Cassandra数据库的一种类似sql的语言。因此,Cassandra在最佳开源数据库中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。

特点:线性可伸缩;;保持快速响应时间;支持原子性、一致性、隔离性和耐久性(ACID)等属性;使用Apache Hadoop支持MapReduce;分配数据的最大灵活性;高度可伸缩;点对点架构。

优点:高度可伸缩;无单点故障;Multi-DC复制;与其他基于JVM的应用程序紧密集成;更适合多数据中心部署、冗余、故障转移和灾难恢复。

缺点:对聚合的有限支持;不可预知的性能;不支持特别查询。

3、Redis

Redis是一个键值存储。此外,它是最著名的键值存储。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C语言编写的。此外,它是根据BSD授权的。

特点:自动故障转移;将其数据库完全保存在内存中;事务;Lua脚本;将数据复制到任意数量的从属服务器;钥匙的寿命有限;LRU驱逐钥匙;支持发布/订阅。

优点:支持多种数据类型;很容易安装;非常快(每秒执行约11万组,每秒执行约81000次); *** 作都是原子的;多用途工具(在许多用例中使用)。

缺点:不支持连接;存储过程所需的Lua知识;数据集必须很好地适应内存。

4、HBase

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。

HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

5、neo4j

Neo4j被称为原生图数据库,因为它有效地实现了属性图模型,一直到存储层。这意味着数据完全按照白板的方式存储,数据库使用指针导航和遍历图。Neo4j有数据库的社区版和企业版。企业版包括Community Edition必须提供的所有功能,以及额外的企业需求,如备份、集群和故障转移功能。

特点:它支持唯一的约束;Neo4j支持完整的ACID(原子性、一致性、隔离性和持久性)规则;Java API: Cypher API和本机Java API;使用Apache Lucence索引;简单查询语言Neo4j CQL;包含用于执行CQL命令的UI: Neo4j Data Browser。

优点:容易检索其相邻节点或关系细节,无需连接或索引;易于学习Neo4j CQL查询语言命令;不需要复杂的连接来检索数据;非常容易地表示半结构化数据;大型企业实时应用程序的高可用性;简化的调优。

缺点:不支持分片

简单讲GAE 就是 google application engine.是一个可以放一些WEB应用程序的平台.

可以说GAE是一项目前市面上最成熟并且功能最全面的PaaS平台。他提供整套开发组件来让用户轻松地在本地构建和调试网络应用,以后能让用户在Google强大的基础设施上部署和运行网络应用程序,并自动根据应用所承受的负载来对应用进行扩展,并免去用户对应用和服务器等的维护工作。同事提供大量的免费额度和灵活的资费标准。在开发语言方面,现在GAE支持Java和Python这两种语言,并为这两种语言提供基本相同的功能和API。

这样我想能懂吧,手都打酸了。

以下是百度的简介

您可以使用 Google提供的免费域名(见扩展阅读)为您的应用程序提供服务,也可以使用 Google Apps 从您自己的域为它提供服务。您可以与全世界的人共享您的应用程序,也可以限制为只有您组织内的成员可以访问。 您可以免费开始使用 App Engine。注册一个免费帐户即可开发和发布您的应用程序以供全世界的人共享,而且不需要承担任何费用和责任。每个免费帐户都可使用多达 500MB 的持久存储空间,以及可支持每月约 500 万页面浏览量的足够 CPU 和宽带[1]。 使用 Google App Engine 的试用版本期间,只可以使用免费帐户。您很快就能够购买其他的计算资源。 App Engine提供了一个web应用运行的框架,App Engine 应用程序易于运行、部属和扩展。App Engine不同于其他方案:App Engine不是网格计算—它不能运行任意的作业。它不提供物理主机但提供了打包代码上传的方式。用户在只需要在代码中指定了response和request,剩下的运行和部署的任务就交给了App Engine。用户不需要预留资源,例如RAM、CPU或者诸如此类。

应用程序环境

通过 Google App Engine,即使在重载和数据量极大的情况下,也可以轻松构建能安全运行的应用程序。该环境包括以下特性: 动态网络服务,提供对常用网络技术的完全支持 持久存储有查询、分类和事务 自动扩展和载荷平衡 用于对用户进行身份验证和使用 Google 帐户发送电子邮件的 API 一种功能完整的本地开发环境,可以在您的计算机上模拟 Google App Engine Google App Engine 应用程序是使用 Python 编程语言实现的。该运行时环境包括完整 Python 语言和多数 Python 标准库。 目前,Google App Engine 支持 Python 语言和 JAVA 语言,但是我们希望将来它可以支持更多语言。

Sandbox

在安全环境中运行的应用程序,仅提供对基础 *** 作系统的有限访问权限。这些限制让 App Engine 可以在多个服务器之间分发应用程序的网络请求,并可以启动和停止服务器以满足访问量需求。Sandbox 将您的应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、 *** 作系统和物理位置无关。 安全 Sandbox 环境的限制实例包括: 应用程序只能通过提供的网址获取和电子邮件服务和 API 访问互联网中的其他计算机。其他计算机只能通过在标准端口上进行 HTTP(或 HTTPS)请求来连接至该应用程序。 应用程序无法向文件系统写入。应用程序只能读取通过应用程序代码上传的文件。该应用程序必须使用 App Engine 数据库存储所有在请求之间持续存在的数据。 应用程序代码仅在响应网络请求时运行,且必须在几秒钟内返回响应数据。请求处理程序不能在响应发送后产生子进程或执行代码。

Python 运行时环境

App Engine 提供了一个使用 Python 编程语言的运行时环境。将来的版本将考虑使用其他编程语言和运行时环境配置。 Python 运行时环境使用 Python 2.5.2 版。 该环境包括 Python 标准库。当然,您无法调用违反了 Sandbox 限制的库方法,例如尝试打开套接字或向文件写入。方便起见,其主要功能不受该运行时环境支持的标准库中的多个模块已被禁用,而导入这些模块的代码将发生错误。 应用程序代码只能以 Python 编写。具有用 C 编写的扩展的代码不受支持。 Python 环境为数据库、Google 帐户、网址获取和电子邮件服务提供了丰富的 Python API。App Engine 还提供了一个称为 webapp 的简单 Python 网络应用程序框架,从而可以轻松开始构建应用程序。 方便起见,App Engine 还包括 Django 网络应用程序框架 0.96.1 版。请注意,App Engine 数据库不是某些 Django 组件所需的关系数据库。某些组件(例如 Django 模板引擎)按照文档化的程序工作,而其他组件则需要做更多工作。有关将 Django 与 App Engine 一起使用的提示,请参阅文章部分。 只要这些库是完全使用 Python 实现并且不需要任何不受支持的标准库模块,您就可以使用您的应用程序上传其他第三方库。 有关 Python 运行时环境的详细信息,请参阅 Python 运行时环境。

数据库

App Engine 提供了一个强大的分布式数据存储服务,其中包含查询引擎和事务功能。就像分布式网络服务器随访问量增加一样,该分布式数据库也会随数据而增加。 该 App Engine 数据库与传统关系数据库不同。数据对象(或“实体”)有一类和一组属性。查询可以检索按属性值过滤和分类的给定种类的实体。属性值可以是受支持的属性值类型中的任何一种。 数据库的 Python API 包括一个可以定义数据库实体结构的数据建模界面。数据模型可以指示属性值必须位于给定范围内,如果未给定任何范围,还可以提供默认值。您的应用程序可以根据需要向数据提供或多或少的结构。 数据库使用乐观锁定进行并发控制。如果有其他进程尝试更新某实体,而同时该实体位于以固定次数进行重新尝试的事务中,此时该实体将更新。应用程序可以在一个事务中执行多项数据库 *** 作(全部成功或者全部失败),从而确保数据的完整性。 数据库通过其分布式网络使用“实体组”实现事务。一个事务 *** 作一个组内的实体。同一组的实体存储在一起,以高效执行事务。应用程序可以在实体创建时将实体分配到组。 有关数据库的详细信息,请参阅数据库 API 参考。

Google 帐户

App Engine 包括用于与 Google 帐户集成的服务 API。应用程序使用户可以通过 Google 帐户登录,并可以访问与该帐户关联的电子邮件地址和可显示的名称。使用 Google 帐户使用户可以更快地开始使用您的应用程序,因为用户可以不需要创建新帐户了。Google 帐户还省去只为您的应用程序执行用户帐户系统的麻烦。 如果您的应用程序正在 Google Apps 下运行,则它可以与您组织的成员和 Google Apps 帐户成员使用相同的功能。 用户 API 还可告知应用程序当前用户是否是应用程序的注册管理员。这样便可以轻松实现您站点上仅用于管理的区域。 有关与 Google 帐户集成的详细信息,请参阅用户 API 参考。

App Engine 服务

App Engine 提供了多种服务,从而使您可以在管理应用程序的同时执行常规 *** 作。提供了以下 API 以访问这些服务: 网址获取 应用程序可以使用 App Engine 的网址获取服务访问互联网上的资源,例如网络服务或其他数据。网址获取服务使用用于为许多其他 Google 产品检索网页的高速 Google 基础架构来检索网络资源。有关网址获取服务的详细信息,请参阅网址获取 API 参考。 邮件 应用程序可以使用 App Engine 的邮件服务发送电子邮件。邮件服务使用 Google 基础架构发送电子邮件。有关邮件服务的详细信息,请参阅邮件 API 参考。 Memcache Memcache 服务为您的应用程序提供了高性能的内存键值缓存,您可通过应用程序的多个实例访问该缓存。Memcache 对于那些不需要数据库的永久性功能和事务功能的数据很有用,例如临时数据或从数据库复制到缓存以进行高速访问的数据。有关 Memcache 服务的详细信息,请参阅 Memcache API 参考。 图片 *** 作 图片服务使您的应用程序可以对图片进行 *** 作。使用该 API,您可以对 JPEG 和 PNG 格式的图片进行大小调整、剪切、旋转和翻转。有关图片 *** 作服务的详细信息,请参阅图片 API 参考。

开发工作流程

App Engine 软件开发套件 (SDK) 包括可以在您的本地计算机上模拟所有 App Engine 服务的网络服务器应用程序。该 SDK 包括 App Engine 中的所有 API 和库。该网络服务器还可以模拟安全 Sandbox 环境,包括检查是否存在禁用模块的导入以及对不允许访问的系统资源的尝试访问。 Python SDK 完全使用 Python 实现,可以在装有 Python 2.5 的任何平台上运行,包括 Windows、Mac OS X 和 Linux。您可以在 Python 网站上获得适用于您的系统的 Python。该 SDK 以 Zip 文件提供,安装程序可用于 Windows 和 Mac OS X。 您可以在此处下载该 SDK。 该 SDK 还包括可将您的应用程序上传到 App Engine 的工具。创建了您应用程序的代码、静态文件和配置文件后,即可运行该工具上传数据。该工具会提示您提供 Google 帐户电子邮件地址和密码。 构建已在 App Engine 上运行的应用程序的新主要发行版时,可以将新发行版作为新版本上传。在您改为使用新版本之前,旧版本可以继续为用户提供服务。可以在仍运行旧版本的同时在 App Engine 上测试新版本。 管理控制台是基于网络的界面,用于管理在 App Engine 上运行的应用程序。您可以使用它创建新应用程序、配置域名、更改您的应用程序当前的版本、检查访问权限和错误日志以及浏览应用程序数据库。

限额和限制

创建 App Engine 应用程序不仅简单,而且是免费的!您可以创建帐户,然后发布一个应用程序,用户无需承担任何费用和责任即可立即使用该应用程序。通过免费帐户获得的应用程序可使用多达 500MB 的存储空间和多达每月 500 万的页面浏览量。 此试用时间内,仅提供免费帐户。您很快就能够以有竞争力的市场价格购买其他的计算资源。试用期过后,免费帐户可继续使用。 此试用期间,最多可注册 3 个应用程序。 应用程序资源限制(“限额”)会不断刷新。如果您的应用程序达到基于时间的限额(例如宽带),则该限额将以给定限制的比率立即开始刷新。固定限额(例如存储使用量)仅在降低使用量时才会减小。 有些功能会施加与限额无关的限制,以保护系统的稳定性。例如,当调用某应用程序以为网络请求提供服务时,该应用程序必须在几秒钟内发出响应。如果该应用程序花费的时间过长,则进程将被终止并且服务器将向用户返回错误代码。响应超时是动态的,如果请求处理程序经常达到其超时,则可以缩短请求超时以节省资源。 服务限制的另一实例是查询返回的结果数。一个查询最多可返回 1,000 条结果。要返回更多结果的查询只能返回该最大值。在这种情况下,执行这种查询的请求不可能在超时前返回请求,但限制仍存在以节省数据库上的资源。 试图破坏或滥用限额(例如同时在多个帐户上 *** 作应用程序)违反服务条款,并可能导致应用程序被禁用或帐户关闭。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10009029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存