redis是nosql数据库吗NoSQL是一项全新的数据库革新运动
NoSQL,就是反SQL,是一项全新的数据库革新运动,特别是在2010年得以迅猛发展。而各种开源的NoSQL软件突然间涌现在你面前。目前似乎没有对NoSQL给出一个标准的定义,也没有相应的规范,但从这些软件可以看出NoSQL软件的共同点:独立运行、K/V存储结构,这之前有人称之为集中式缓存服务,其实你可以把二者等同起来。
那么多的NoSQL软件,到底哪些更受欢迎呢?为此,开源中国社区为你评选出10款2010年最受关注的NoSQL软件。
1.Cassandra
Cassandra在2010年出尽风头,但最终都以失败告终,包括Twitter以及Digg的案例使我们不得不对NoSQL技术是否成熟,是否能在大规模系统中应用产生了怀疑。但这并不影响Cassandra拔得头筹,因为还有Facebook的支持。
Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook目前在使用此系统。
主要特性:
分布式
基于column的结构化
高伸展性
Cassandra采用Java开发,Apache授权协议。
memcached是老牌的独立缓存服务的领头羊,目前国内使用该系统的网站非常的多,在这基础上还有国内开发的memcachedb是memcached支持持久化存储。
memcached是一套分布式的快取系统,当初是Danga Interactive为了LiveJournal所发
展的,但目前被许多软件(如MediaWiki)所使用。不过,memcached缺乏认证以及安全管制memcached采用C语言开发,可在Linux系统下使用,采用BSD授权。
3.Membase
Membase是NoSQL家族的一个新的重量级的成员,其完全兼容memcached的方式,有望笼络memca
ched的用户。Membase的可伸缩性、集、复制以及管理方便等特性又是memcached无法匹敌的。
Membase同样采用C语言开发,支持Windows和Linux系统,使用Apache授权协议。
接下来介绍两款国产的NoSQL软件:
4.Tair
Tair是由淘宝网自主开发的分布式Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。
Tair采用C语言开发,支持Linux系统,使用GPLv2授权协议。
5.BeansDB
BeansDB是豆瓣网开发的一个主要针对大数据量、高可用性的分布式Key Value存储系统,采用HashTree和简化的版本号来快速同步保证最终一致性(弱),一个简化版的Dynamo。
它采用类似memcached的去中心化结构,在客户端实现数据路由。目前只提供了Python 版本的客户端,其它语言的客户端可以由memcached的客户端稍加改造得到。
主要特性包括:
高可用:通过多个可读写的用于备份实现高可用;
最终一致性:通过哈希树实现快速完整数据同步(短时间内数据可能不一致);
容易扩展:可以在不中断服务的情况下进行容量扩展;
高性能:异步IO和高性能的Key Value数据Tokyo Cabinet;
可配置的可用性和一致性:通过N,W,R进行配置;
简单协议:Memcached兼容协议,大量可用客户端。
BeansDB采用Python语言开发,支持Linux系统,使用BSD授权协议。
6.Redis
Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached 这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
Redis的短板:
这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。
缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。
Redis采用C语言开发,支持Linux系统,使用BSD授权协议。
7.CouchDB
Apache CouchDB是一个面向文档的数据库管理系统。它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。CouchDB是Apache基金会的顶级开源项目。
CouchDB落实到最底层的数据结构就是两类B+Tree。
不过最近有消息说CouchDB将走一条不同于NoSQL的路子,具体情况如何我们只能拭目以待。
CouchDB是用ErLang开发的哦,跨平台支持,Apache授权协议。
8.Tokyo Cabinet
Tokyo Cabinet是一个DBM的实现。这里的数据库由一系列key-value对的记录构成。key和value都可以是任意长度的字节序列,既可以是二进制也可以是字符串。这里没有数据类型和数据表的概念。
当做为Hash表数据库使用时,每个key必须是不同的,因此无法存储两个key相同的值。提供了以下访问方法:提供key,value参数来存储,按key删除记录,按key来读取记录,另外,遍历key也被支持,虽然顺序是任意的不能被保证。这些方法跟Unix标准的DBM,例如GDBM,NDBM等等是相同的,但是比它们的性能要好得多(因此可以替代它们)当按B+树来存储时,拥用相同key的记录也能被存储。像hash表一样的读取,存储,删除函数也都有提供。记录按照用户提供的比较函数来存储。可以采用顺序或倒序的游标来读取每一条记录。依照这个原理,向前的字符串匹配搜索和整数区间搜索也实现了。另外,B+树的事务也是可用的。
Tokyo Cabinet采用C语言开发,支持Linux系统,使用LGPL授权协议。
9.OrientDB
Orient DB是一个可伸缩的文档数据库,支持ACID事务处理。使用Java5实现。OrientDB最强的一个地方是可以使用类SQL的查询语句进行数据查询。
OrientDB采用Java语言开发,跨平台支持,使用Apache授权协议。
10.Hibari
Hibari(在日语中意思为“云雀”)是一个专为高可靠性和大数据存储的数据库引擎,可用于云计算环境中,例如webmail、SNS和其他要求T/P级数据存储的环境中。Hibari支持Java,C/C++,Python,Ruby,和Erlang语言的客户端。
Hibari并不是一个关系数据库,主要是通过key-value的方法进行数据存储。
Hibari使用ErLang语言开发,支持Linux/BSD系统,Apache授权协议
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论