MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(BinarySerializeddOcumentFormat)。
MongoDB服务端可运行在Linux、Windows或OSX平台,支持32位和64位应用,默认端口为。推荐运行在64位平台,因为MongoDB
MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了GoogleBigTable基于列族(ColumnFamily)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo2.0。
模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。真正的可扩展性:Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。多数据中心识别:你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。
范围查询:如果你不喜欢全部的键值查询,则可以设置键的范围来查询。列表数据结构:在混合模式可以将超级列添加到5维。对于每个用户的索引,这是非常方便的。分布式写操作:有可以在任何地方任何时间集中读或写任何数据。并且不会有任何单点失败。
ApacheCouchDB是一个面向文档的数据库管理系统。它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。CouchDB是Apache基金会的顶级开源项目。
与现在流行的关系数据库服务器不同,CouchDB是围绕一系列语义上自包含的文档而组织的。CouchDB中的文档是没有模式的(schemafree),也就是说并不要求文档具有某种特定的结构。CouchDB的这种特性使得相对于传统的关系数据库而言,有自己的适用范围。一般来说,围绕文档来构建的应用都比较适合使用CouchDB作为其后台存储。CouchDB强调其中所存储的文档,在语义上是自包含的。这种面向文档的设计思路,更贴近很多应用的问题域的真实情况。对于这类应用,使用CouchDB的文档来进行建模,会更加自然和简单。与此同时,CouchDB也提供基于MapReduce编程模型的视图来对文档进行查询,可以提供类似于关系数据库中SQL语句的能力。CouchDB对于很多应用来说,提供了关系数据库之外的更好的选择。
Hypertable是一个正在进行中的开源项目,以google的bigtable论文为基础指导,使用c 语言实现。
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个appendonlyfile(aof)里面(这称为“全持久化模式”)。
Riak是一个去中心化的key-value存储服务器,提供一个灵活的map/reduce引擎,一个友好的HTTP/JSON查询接口。
开发者可以通过Java-API直接与图形模型交互,这个API暴露了非常灵活的数据结构。至于象JRuby/Ruby、Scala、Python、Clojure等其他语言,社区也贡献了优秀的绑定库。Neo4j的典型数据特征:
甚至“传统”RDBMS应用往往也会包含一些具有挑战性、非常适合用图来处理的数据集,如文件夹结构、产品配置、产品组装和分类、媒体元数据、金融领域的语义交易和欺诈检测等。
围绕内核,Neo4j提供了一组可选的组件。其中有支持通过元模型构造图形结构、SAIL-一种SparQL兼容的RDFTripleStore实现或一组公共图形算法的实现。
要是你想将Neo4j作为单独的服务器运行,还可以找到REST包装器。这非常适合使用LAMP软件搭建的架构。通过memcached、e-tag和基于Apache的缓存和Web层,REST甚至简化了大规模读负荷的伸缩。
CouchbaseServer是一个集群化的、基于文档的数据库系统,它使用一个缓存层来提供非常快的数据访问,将大部分数据都存储在RAM中。该系统使用多个节点和一个自动分散在整个集群上的缓存层。这实现了一种弹性,您可扩大和紧缩集群,以便利用更多RAM或磁盘I/O来帮助提升性能。
CouchbaseServer中的所有数据最终会持久存储在磁盘中,但最初会通过缓存层执行写入和更新操作,这正是提供高性能的源泉,是我们通过处理Hadoop数据来获得实时信息和查询内容时可利用的优势。
CouchbaseServer的基本形式是一个基本文档和基于键/值的存储。只有在您知道文档ID时,才能检索集群提供的信息。在CouchbaseServer2.0中,您可以将文档存储为JSON格式,然后使用视图系统在存储的JSON文档上创建一个视图。视图是在存储在数据库中的文档上执行的一个MapReduce组合。来自视图的输出是一个索引,它通过MapReduce函数来匹配您定义的结构。索引的存在为您提供了查询底层的文档数据的能力。
memcachedb是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了BerkeleyDB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。
笃行:MemcacheDB是新浪开发人员放出来的?开玩笑吧,复制粘贴不带验证的吗
夜无痕星:“然后,线程D开始提交。线程E用CAS操作将“cursor”设置为3(线程E持有的区块位置)当且仅当“cursor”位置是
2.“cursor”当前是
2,所以CAS操作成功和提交也成功了。”======应该是线程D
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。