2011年5款备受关注的开源 NoSQL 数据库
1.集中式缓存系统memcached
memcached是一套分布式的快取系统,当初是DangaInteractive为了LiveJournal所发展的,但目前被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSDlicense授权释出。
memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。
memcached的API使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于memcached通常只是当作快取系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程式码更新memcached内的资料。
memcached具有多种语言的客户端开发包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL/
2.分布式K/V存储方案Cassandra
ApacheCassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook目前在使用此系统。
主要特性:
分布式
基于column的结构化
高伸展性
3.开源NoSQL系统Membase
Membase是NoSQL家族的一个新的重量级的成员。
Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Sourcetarballs上,目前可以下载beta版本的Linux二进制包。该产品主要是由NorthScale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。
Membase容易安装、操作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容性)实现了即插即用功能,在应用方面为开发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中Memcached的部分基础代码被直接应用到了Membase服务器的前端。
4.超高性能key-value数据库Redis
Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
性能测试结果:
SET操作每秒钟110000次,GET操作每秒钟81000次,服务器配置如下:
Linux2.6,XeonX33202.5Ghz.
stackoverflow网站使用Redis做为缓存服务器。
5.面向文档的数据库CouchDB
ApacheCouchDB是一个面向文档的数据库管理系统。它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。CouchDB是Apache基金会的顶级开源项目。
CouchDB落实到最底层的数据结构就是两类B+Tree。