相比来看,CouchDB 的长处正是Redis的短处:存储大量的不易变但会被经常查询的数据。Redis的长处正是CouchDB的短处:存储小量的常变数据。
以一个博客系统为例,CouchDB作为一个文档型数据库,可以用来存储文章,评论,模板及附件等,而Redis以其丰富的数据类型的数据结构,更适合用来存储评论列表,网站实时状态,过滤spam,用户session信息以及页面缓存。
作为一个内存数据库,Redis提供了快速对其数据结构进行复杂操作的功能,另外通过一份顺序的日志来保证其数据可靠性。
CouchDB使用了一种append-only的数据模型,不仅在数据库数据存储上,包括其B-tree和R-tree索引都是append-only的,所以如果你的数据修改操作太多(比如计数器应用),那么CouchDB的数据文件会飞速膨胀。
Redis采用定时将内存数据Flush成RDB文件的方法来实现数据的持久化,而CouchDB的数据需要定时做数据压缩以缩减数据文件的大小,这一过程会把数据文件读入,压缩后再写成新的文件。是一个非常耗时的过程。
Redis提供了简单的索引机制和复杂的数据结构,而CouchDB提供的是复杂的索引和简单的数据结构。Redis适合用来存储实时数据,而CouchDB适合用来存储大量的文档型数据。
下面是一个更详细的各方面对比表格:
Couchdb | Redis | |
Written in | Erlang | C |
License | Apache | BSD |
Release | 1.1.0, 2.0 preview | 2.2.12, 2.4.0RC5 |
API | REST | Telnet-style |
API Speed | Slow | Fast |
Data | JSON documents, binary attachments | Text, binary, hash, list, set, sorted set |
Indexes | B-tree, R-tree, Full-text (with Lucene), any combination of data types via map/reduce | Hash only |
Queries | Predefined view/list/show model, ad-hoc queries require table scans | Individual keys |
Storage | Append-only on disk | In-memory, append-only log |
Updates | MVCC | In-place |
Transactions | Yes, all-or-nothing batches | Yes, with conditional commands |
Compaction | File rewrite | Snapshot |
Threading | Many threads | Single-threaded, forks for snapshots |
Multi-Core | Yes | No |
Memory | Tiny | Large (all data) |
SSD-Friendly | Yes | Yes |
Robust | Yes | Yes |
Backup | Just copy the files | Just copy the files |
Replication | Master-master, automatic | Master-slave, automatic |
Scaling | Clustering (BigCouch) | Clustering (Redis cluster*) |
Scripting | JavaScript, Erlang, others via plugin | Lua* |
Files | One per database | One per database |
Virtual Files | Attachments | No |
Other | Changes feed, Standalone applications | Pub/Sub, Key expiry |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
2017年1月数据库流行度排行榜 新年新气象
新年新气象,数据库知识网站DB-engines最近更新了2017年1月份数据库流行度榜单。TechTarget数据库网站将与您分享1月份的榜单排名情况,让我们拭目以待。
-
2016年10月数据库流行度排行榜 两组数据库棋逢对手
数据库知识网站DB-engines更新了2016年10月份的数据库流行度排行榜,10月份的榜单又有哪些变化,哪些惊喜呢?
-
NoSQL性能管理仍不完备 你该如何应对?
NoSQL技术现在仍然处于相对初级的阶段,众多NoSQL软件类型和产品服务令人眼花缭乱,选择合适的性能管理方案也成为一件颇具挑战性的事。
-
2016年6月数据库流行度排行榜 SQLite反超Redis
数据库知识网站DB-engines更新了2016年6月份的数据库流行度排行榜。TechTarget数据库网站与您分享6月份的榜单。