diff --git a/translated/NoSQL comparison.md b/published/NoSQL comparison.md similarity index 66% rename from translated/NoSQL comparison.md rename to published/NoSQL comparison.md index e09321e00d..6b7cd9a6f1 100644 --- a/translated/NoSQL comparison.md +++ b/published/NoSQL comparison.md @@ -1,9 +1,9 @@ 各种 NoSQL 的比较 ================ -即使关系型数据库依然是非常有用的工具,它们持续几十年的垄断地位就要走到头了。现在已经存在无数能撼动关系型数据库地位的 NoSQL,当然,这些 NoSQL 还无法完全取代它们。(也就是说,关系型数据库还是处理关系型事务的最佳方式。) +即使关系型数据库依然是非常有用的工具,但它们持续几十年的垄断地位就要走到头了。现在已经存在无数能撼动关系型数据库地位的 NoSQL,当然,这些 NoSQL 还无法完全取代它们。(也就是说,关系型数据库还是处理关系型事务的最佳方式。) -NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所以软件架构师必须要在项目一开始就选好一款合适的 NoSQL。 +NoSQL 与 NoSQL 之间的区别,要远大于不同的 SQL 数据库之间的区别,所以软件架构师必须要在项目一开始就选好一款合适的 NoSQL。 考虑到这种情况,本文为大家介绍以下几种 NoSQL 之间的区别:[Cassandra][], [Mongodb][], [CouchDB][], [Redis][], [Riak][], [Couchbase (ex-Membase)][], [Hypertable][], [ElasticSearch][], [Accumulo][], [VoltDB][], [Kyoto Tycoon][], [Scalaris][], [Neo4j][]和[HBase][]: @@ -15,9 +15,9 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **主要特性:** 保留 SQL 中一些用户友好的特性(查询、索引等) -**许可证:** AGPL (发起者: Apache) +**许可证:** AGPL (驱动: 采用Apache许可协议) -**数据传输、存储的格式:** 自定义,二进制( BSON 文档格式) +**数据传输格式:** 自定义,二进制( BSON 文档格式) - 主/从备份(支持自动故障切换功能) - 自带数据分片功能 @@ -30,12 +30,19 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 在 32 位系统中,内存限制在 2.5GB - 空数据库占用 192MB 空间 - 使用 GridFS(不是真正的文件系统)来保存大数据和元数据 -- 支持对数据建立索引 -- 数据中心意识 +- 支持对地理数据建立索引 +- 可用于数据中心 -**应用场景:** 动态查询;需要定义索引而不是 map/reduce 功能;提高大数据库性能;想使用 CouchDB 但数据的 IO 吞吐量太大,CouchDB 无法满足要求。MongoDB 可以满足你的需求 +**应用场景:** -**使用案例:** 想布署 MySQL 或 PostgreSQL,但它们存在的预定义处理语句和预定义变量让你望而却步。这个时候,MongoDB 是你可以考虑的选项 +- 动态查询 +- 喜欢定义索引,而不是使用 map/reduce 功能 +- 高性能的大数据访问 +- 想使用 CouchDB 但数据变化频度太大 + +**使用案例:** + +想布署 MySQL 或 PostgreSQL,但预先定义数据字典让你望而却步。这个时候,MongoDB 是你可以考虑的选项 ###Riak 1.2版 @@ -45,23 +52,28 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** Apache -**数据传输、存储的格式:** HTTP/REST 架构,自定义二进制格式 +**数据传输格式:** HTTP/REST 架构,或自定义二进制格式 - 可存储 BLOB(binary large object,二进制大对象,比如一张图片、一个声音文件 —— 译者注) -- 可在分部式存储和备份存储之间作协调 +- 可在分布式存储和复制存储之间作协调 - 为了保证可验证性和安全性,Riak 在 JS 和 Erlaing 中提供提交前(pre-commit)和提交后(post-commit)钩子(hook)函数(你可以在提交数据前执行一个 hook,或者在提交数据后执行一个 hook —— 译者注) - JS 和 Erlang 提供映射和简化(map/reduce)编程模型 -- 使用 links 和 link walking 图形化数据库(link 用于描述对象之间的关系,link walking 是一个用于查询对象关系的进程 —— 译者注) +- 使用 links 和 link walking ,用于图形化数据库(link 用于描述对象之间的关系,link walking 是一个用于查询对象关系的进程 —— 译者注) - 次要标记(secondaty indeces,开发者在写数据时可用多个名称来标记一个对象 —— 译者注),一次只能用一个 - 支持大数据对象(Luwak)(Luwak 是 Riak 中的一个服务层,为大数据量对象提供简单的、面向文档的抽象,弥补了 Riak 的 Key/Value 存储格式在处理大数据对象方面的不足 —— 译者注) - 提供“开源”和“企业”两个版本 -- 提供“全文搜索”(可能就是允许用户在不提供 table/volume 等信息,对一个表进行文本字段的搜索,瞎猜的,望指正 —— 译者注) +- 基于Riak搜索的全文检索、建立索引和查询 - 正在将存储后端从“Bitcask”迁移到 Google 的“LevelDB”上 -- 企业版本提供多点备份(各点地位平等,非主从架构)和SNMP监控功能 +- 企业版本提供无主模式的多点复制(各点地位平等,非主从架构)和SNMP监控功能 -**应用场景:** 假如你想要类似 Dynamo 的数据库,但不想要它的庞大和复杂;假如你需要良好的单点可扩展性、可用性和容错能力,但不想为多点备份买单。 Riak 能满足你的需求 +**应用场景:** -**使用案例:** 销售点数据收集;工厂控制系统;必须实时在线的系统;需要易于升级的网站服务器 +- 假如你想要类似 Dynamo 的数据库,但不想要它的庞大和复杂 +- 假如你需要良好的单点可扩展性、可用性和容错能力,但不想为多点备份买单。 + +**使用案例:** + +销售点数据收集;工厂控制系统;必须实时在线的系统;需要易于升级的网站服务器 ###CouchDB 1.2版 @@ -73,25 +85,30 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **数据传输格式:** HTTP/REST -- 双向复制(一种同步技术,每个备份点都有一份它们自己的拷贝,允许用户在存储点断线的情况下修改数据,当存储节点重新上线时,CouchDB 会对所有节点同步这些修改 —— 译者注) +- 双向复制!(一种同步技术,每个备份点都有一份它们自己的拷贝,允许用户在存储点断线的情况下修改数据,当存储节点重新上线时,CouchDB 会对所有节点同步这些修改 —— 译者注) - 支持持续同步或者点对点同步 - 支持冲突检测 -- 支持主主互备(多个数据库时时同步数据,起到备份和分摊用户并行访问量的作用 —— 译者注) -- 多版本并发控制(MVCC),写操作时不需要阻塞读操作(或者说不需要锁住数据库) -- 向下兼容 +- 支持主主互备!(多个数据库实时同步数据,起到备份和分摊用户并行访问量的作用 —— 译者注) +- 多版本并发控制(MVCC),写操作时不需要阻塞读操作(或者说不需要锁住数据库的读取操作) +- 向下兼容以前版本的数据 - 可靠的 crash-only 设计(所谓 crash-only,就是程序出错时,只需重启下程序,丢弃内存的所有数据,不需要执行复杂的数据恢复操作 —— 译者注) - 需要实时压缩数据 - 视图(文档是 CouchDB 的核心概念,CouchDB 中的视图声明了如何从文档中提取数据,以及如何对提取出来的数据进行处理 —— 译者注):内嵌映射和简化(map/reduce)编程模型 - 格式化的views字段:lists(包含把视图运行结果转换成非 JSON 格式的方法)和 shows(包含把文档转换成非 JSON 格式的方法)(在 CouchDB 中,一个 Web 应用是与一个设计文档相对应的。在设计文档中可以包含一些特殊的字段,views 字段包含永久的视图定义 —— 译者注) -- 可能会提供服务器端文档验证的功能 -- 可能提供身份认证功能 -- 通过 _changes 函数实时更新数据 +- 能够进行服务器端文档验证 +- 能够提供身份认证功能 +- 通过 _changes 函数实时更新数据! - 链接处理(attachment:couchDB 的每份文档都可以有一个 attachment,就像一份 email 有它的网址 —— 译者注) -- 有个 CouchApps(第三方JS的应用) +- 有个 [CouchApps][1](第三方JS的应用) -**应用场景:** 用于随机数据量多、需要预定义查询的地方;用于版本控制比较重要的地方 +**应用场景:** -**使用案例:** 可用于客户关系管理(CRM),内容管理系统(CMS);可用于主主互备甚至多机互备 +- 用于随机数据量多、需要预定义查询的地方 +- 用于版本控制比较重要的地方 + +**使用案例:** + +可用于客户关系管理(CRM),内容管理系统(CMS);可用于主主互备甚至多机互备 ###Redis 2.4版 @@ -101,25 +118,29 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** BSD -**数据传输方式:** 类似 Telnet +**数据传输格式:** 类似 Telnet 式的交换 - Redis 是一个内存数据库(in-memory database,简称 IMDB,将数据放在内存进行读写,这才是“快到掉渣”的真正原因 —— 译者注),磁盘只是提供数据持久化(即将内存的数据写到磁盘)的功能(这类数据库被称为“disk backed”数据库) - 当前不支持将磁盘作为 swap 分区,虚拟内存(VM)和 Diskstore 方式都没加到此版本(Redis 的数据持久化共有4种方式:定时快照、基于语句追加、虚拟内存、diskstore。其中 VM 方式由于性能不好以及不稳定的问题,已经被作者放弃,而 diskstore 方式还在实验阶段 —— 译者注) - 主从备份 - 存储结构为简单的 key/value 或 hash 表 -- 但是操作比较复杂,比如:ZREVRANGEBYSCORE +- 但是[操作比较复杂][2],比如:ZREVRANGEBYSCORE - 支持 INCR(INCR key 就是将key中存储的数值加一 —— 译者注)命令(对限速和统计有帮助) - 支持sets数据类型(以及 union/diff/inter) - 支持 lists (以及 queue/blocking pop) - 支持 hash sets (多级对象) - 支持 sorted sets(高效率的表,在范围查找方面有优势) -- 支持事务处理 +- 支持事务处理! - 缓存中的数据可被标记为过期 -- Pub/Sub 操作能让用户发送信息 +- Pub/Sub 实现了消息订阅和推送! -**应用场景:** 适合布署快速多变的小规模数据(可以完全运行在存在中) +**应用场景:** -**使用案例:** 股价系统、分析系统、实时数据收集系统、实时通信系统、以及取代 memcached +- 适合布署快速多变的小规模数据(可以完全运行在存在中) + +**使用案例:** + +股价系统、分析系统、实时数据收集系统、实时通信系统、以及取代 memcached ##Google Bigtable 的衍生品 @@ -131,7 +152,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** Apache -**数据传输方式:** HTTP/REST (也支持 Thrift 开发框架) +**数据传输格式:** HTTP/REST (也支持 Thrift 开发框架) - 仿造 Google 的 BigTable - 使用 Hadoop 的 HDFS 文件系统作为存储 @@ -139,15 +160,20 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 查询条件被推送到服务器端,由服务器端执行扫描和过滤 - 对实时查询进行优化 - 高性能的 Thrift gateway(访问 HBase 的接口之一,特点是利用 Thrift 序列化支持多种语言,可用于异构系统在线访问 HBase 表数据 —— 译者注) -- 使用 HTTP 通信协议,支持 XML、Protobuf 以及一些二进制文档结构 +- 使用 HTTP 通信协议,支持 XML、Protobuf 以及二进制格式 - 支持基于 Jruby(JIRB)的shell - 当配置信息有更改时,支持 rolling restart(轮流重启数据节点) - 随机读写性能与 MySQL 一样 - 一个集群可由不同类型的结点组成 -**应用场景:** Hadoop 可能是在大数据上跑 Map/Reduce 业务的最佳选择;如果你已经搭建了 Hadoop/HDFS 架构,HBase 也是你最佳的选择。 +**应用场景:** -**使用案例:** 搜索引擎;日志分析系统;扫描大型二维非关系型数据表。 +- Hadoop 可能是在大数据上跑 Map/Reduce 业务的最佳选择 +- 如果你已经搭建了 Hadoop/HDFS 架构,HBase 也是你最佳的选择。 + +**使用案例:** + +搜索引擎;日志分析系统;扫描大型二维非关系型数据表。 ###Cassandra 1.2版 @@ -157,7 +183,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** Apache -**数据传输和存储方式:** Thrift 和自定义二进制 CQL3(即 Cassandra 查询语言第3版 —— 译者注) +**数据传输格式:** Thrift 和自定义二进制 CQL3(即 Cassandra 查询语言第3版 —— 译者注) - 可以灵活调整对数据的分布式或备份式存储(通过设置N,R,W之间的关系)(NRW是数据库布署模型中的概念,N是存储网络中复制数据的节点数,R是网络中读数据的节点数,W是网络中写数据的节点数。一个环境中N值是固定的,设置不同的WR值组合能在数据可用性和数据一致性之间取得不同的平衡,可参考 CAP 定理 —— 译者注) - 按列查询,按keys值排序后存储(需要包含你想要搜索的任何信息)(Cassandra 的数据模型借鉴自 BigTable 的列式存储,列式存储可以理解成这样,将行ID、列簇号,列号以及时间戳一起,组成一个Key,然后将Value按Key的顺序进行存储 —— 译者注) @@ -169,9 +195,14 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 所有节点都相似,这点与 Hadop/HBase 架构不同 - 可靠的跨数据中心备份解决方案 -**应用场景:** 写操作多于读操作的环境(比如日志系统);如果系统全部由 JAVA 组成(“没人会因为使用了 Apache 许可下的产品而被炒鱿鱼”(此句貌似是网上有人针对“Apache considered harmful”一文所作的回应 —— 译者注)) +**应用场景:** -**使用案例:** 银行、金融机构;写性能强于读性能,所以 Cassandra 天生就是用来作数据分析的。 +- 写操作多于读操作的环境(比如日志系统) +- 如果系统全部由 JAVA 组成(“没人会因为使用了 Apache 许可下的产品而被炒鱿鱼”(此句貌似是网上有人针对“Apache considered harmful”一文所作的回应 —— 译者注)) + +**使用案例:** + +银行、金融机构;写性能强于读性能,所以 Cassandra 天生就是用来作数据分析的。 ###Hypertable 0.9.6.5版 @@ -181,7 +212,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** GPL 2.0 -**数据传输和存储的方式:** Thrift,C++库,或者 HQL shell +**数据传输格式:** Thrift,C++库,或者 HQL shell - 采用与 Google BigTable 相似的设计 - 运行在 Hadoop HDFS 之上 @@ -193,9 +224,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 表在命名空间内定义 - 使用 Hadoop 的 Map/reduce 模型 -**应用场景:** 假如你需要一个更好的HBase,就用Hypertable吧。 +**应用场景:** -**使用案例:** 与HBase一样,就是搜索引擎被换了下;分析日志数据的系统;适用于浏览大规模二维非关系型数据表。 +- 假如你需要一个更好的HBase,就用Hypertable吧 + +**使用案例:** + +与HBase一样,就是搜索引擎被换了下;分析日志数据的系统;适用于浏览大规模二维非关系型数据表。 ###Accumulo 1.4版 @@ -205,7 +240,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** Apache -**数据传输和存储的方式:** Thrift +**数据传输格式:** Thrift - 另一个 BigTable 的复制品,也是跑在 Hadoop 的上层 - 单元级安全保证 @@ -214,9 +249,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 使用 Hadoop 的 Map/reduce 模型 - 支持在服务器端编程 -**应用场景:** HBase的替代品 +**应用场景:** -**使用案例:** 与HBase一样,就是搜索引擎被换了下;分析日志数据的系统;适用于浏览大规模二维非关系型数据表。 +- HBase的替代品 + +**使用案例:** + +与HBase一样,就是搜索引擎被换了下;分析日志数据的系统;适用于浏览大规模二维非关系型数据表。 ##特殊用途 @@ -228,7 +267,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** GPL,AGPL(商业用途) -**数据传输和存储的方式:** HTTP/REST(或内嵌在 Java 中) +**数据传输格式:** HTTP/REST(或内嵌在 Java 中) - 可独立存在,或内嵌在 JAVA 的应用中 - 完全的 ACID 保证(包括正在处理的数据) @@ -244,9 +283,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 可运行脚本 Groovy 脚本 - 在商用版本中提供在线备份,高级监控和高可用性功能 -**应用场景:** 适用于用图形显示复杂的交互型数据。 +**应用场景:** -**使用案例:** 搜寻社交关系网、公共传输链、公路路线图、或网络拓扑结构 +- 适用于用图形显示复杂的交互型数据。 + +**使用案例:** + +搜寻社交关系网、公共传输链、公路路线图、或网络拓扑结构 ###ElasticSearch 0.20.1 版 @@ -256,7 +299,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** Apache -**数据传输和存储的方式:** 通过 HTTP 使用 JSON 进行数据索引(插件:Thrift, memcached) +**数据传输格式:** 通过 HTTP 使用 JSON 进行数据索引(插件:Thrift, memcached) - 以 JSON 形式保存数据 - 提供版本升级功能 @@ -272,9 +315,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 可以维持自动的“统计组”(对调试很有帮助) - 只有一个开发者(kimchy) -**应用场景:** 当你有可伸缩性很强的项目并且想拥有“高级搜索”功能。 +**应用场景:** -**使用案例:** 可布署一个约会服务,提供不同年龄、不同地理位置、不同品味的客户的交友需求。或者可以布署一个基于多项参数的排行榜。 +- 当你有可伸缩性很强的项目并且想拥有“高级搜索”功能。 + +**使用案例:** + +可布署一个约会服务,提供不同年龄、不同地理位置、不同品味的客户的交友需求。或者可以布署一个基于多项参数的排行榜。 ##其他 @@ -288,7 +335,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** Apache -**数据传输和存储的方式:** 缓存和扩展(memcached + extensions) +**数据传输格式:** 缓存和扩展(memcached + extensions) - 通过 key 访问数据非常快(20万以上IOPS) - 数据保存在磁盘(不像 Memcache 保存在内存中 —— 译者注) @@ -300,9 +347,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 支持 Map/reduce 模式 - 支持跨数据中心备份 -**应用场景:** 适用于低延迟数据访问系统,高并发和高可用系统。 +**应用场景:** -**使用案例:** 低延迟可用于广告定投;高并发可用于在线游戏(如星佳公司)。 +- 适用于低延迟数据访问系统,高并发和高可用系统。 + +**使用案例:** + +低延迟可用于广告定投;高并发可用于在线游戏(如星佳公司)。 ###VoltDB 2.8.4.1版 @@ -312,7 +363,7 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 **许可证:** GPL 3 -**数据传输和存储的方式:** 专有方式 +**数据传输格式:** 专有方式 - 运行在内存的关系型数据库 - 可以将数据导入到 Hadoop @@ -320,9 +371,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 在 JAVA 环境中保存操作过程 - 支持跨数据中心备份 -**应用场景:** 适用于在大量传入数据中保证快速反应能力的场合。 +**应用场景:** -**使用案例:** 销售点数据分析系统;工厂控制系统。 +- 适用于在大量传入数据中保证快速反应能力的场合。 + +**使用案例:** + +销售点数据分析系统;工厂控制系统。 ###Scalaris 0.5版 @@ -341,9 +396,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 支持分布式数据的一致性写操作 - 根据 CAP 定理,数据一致性要求高于数据可用性(前提是在一个比较大的网络分区环境下工作)(CAP 定理:数据一致性consistency、数据可用性availability、分隔容忍partition tolerance是分布式计算系统的三个属性,一个分布式计算系统不可能同时满足全部三项) -**应用场景:** 如果你喜欢 Erlang 并且想要使用 Mnesia 或 DETS 或 ETS,但你需要一个能使用多种语言(并且可扩展性强于 ETS 和 DETS)的技术,那就选它吧。 +**应用场景:** -**使用案例:** 使用基于 Erlang 的系统,但是想通过 Python、Ruby 或 JAVA 访问数据库 +- 如果你喜欢 Erlang 并且想要使用 Mnesia 或 DETS 或 ETS,但你需要一个能使用多种语言(并且可扩展性强于 ETS 和 DETS)的技术,那就选它吧。 + +**使用案例:** + +使用基于 Erlang 的系统,但是想通过 Python、Ruby 或 JAVA 访问数据库 ###Kyoto Tycoon 0.9.56版 @@ -365,9 +424,13 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 - 支持内存数据库在后端执行快照 - 自动过期处理(可用来布署一个缓存服务器) -**应用场景:** 当你想要一个很精准的后端存储算法引擎,并且速度是刚需的时候,玩玩 Kyoto Tycoon 吧。 +**应用场景:** -**使用案例:** 缓存服务器;股价查询系统;数据分析系统;实时数据控制系统;实时交互系统;memcached的替代品。 +- 当你想要一个很精准的后端存储算法引擎,并且速度是刚需的时候,玩玩 Kyoto Tycoon 吧。 + +**使用案例:** + +缓存服务器;股价查询系统;数据分析系统;实时数据控制系统;实时交互系统;memcached的替代品。 当然,上述系统的特点肯定不止列出来这么点。我只是列出了我认为很关键的信息。另外科技发展迅猛,技术改变得非常快。 @@ -377,14 +440,9 @@ NoSQL 与 NoSQL 之间的区别,要远大于 SQL 与 SQL 之间的区别。所 via: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis -本文由 [LCTT][] 原创翻译,[Linux中国][] 荣誉推出 +译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy) -译者:[译者ID][] 校对:[校对者ID][] - -[LCTT]:https://github.com/LCTT/TranslateProject -[Linux中国]:http://linux.cn/portal.php -[chenjintao]:http://linux.cn/space/chenjintao -[校对者ID]:http://linux.cn/space/校对者ID +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [Cassandra]:http://cassandra.apache.org/ [Mongodb]:http://www.mongodb.org/ @@ -400,3 +458,6 @@ via: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis [Scalaris]:https://code.google.com/p/scalaris/ [Neo4j]:http://neo4j.org/ [HBase]:http://hbase.apache.org/ + +[1]:http://couchapp.org/ +[2]:http://redis.io/commands