Muz*_*hua 7 javascript python java erlang couchdb
截至目前,我使用较新版本的CouchBase的唯一方法是通过memcached客户端.我使用Erlang作为编程语言,所以我抓住了自己的Erlang Memcached客户端.我注意到这个客户端通过erlang:term_to_binary/1 and erlang:binary_to_term/1在发送和接收来自memcached的数据时将它们从二进制转换为二进制来串行化和反序列化erlang术语(Key和Value).
在设置CouchBase时,我们被要求选择memcached存储桶或CouchBase存储桶(vbuckets).现在,我选择了CouchBase(因为我需要持久性).我开始使用erlang memcached客户端与设置进行交互,没关系,我保存了erlang术语并从数据库中获取了erlang术语.然而,问题从这里开始:
1.由于数据序列化,对象作为附件被接收.即使作为JSON从Erlang发送,它们也作为二进制数据发送,这对CouchBase(或Memcached?)没有任何意义.
{
"_id": "mykey",
"_rev": "1-000010fb1a2b02ef0000000d59960000",
"$flags": 38489,
"$expiration": 0,
"$att_reason": "invalid_json",
"_attachments": {
"value": {
"content_type": "application/content-stream",
"revpos": 2,
"digest": "md5-n3mJhf2kKVQtkIunIbCJZQ==",
"length": 13,
"stub": true
}
}
}
CouchDB 和 Couchbase 之间有很大的区别,如果我是对的,Couchbase 使用 CouchDB 来存储数据,但不提供/呈现 CouchDB 的视图和其他不错的功能。
我浏览了 Couchbase 网站和 Couchbase 服务器文档中的不同 API(ruby、php),但没有找到有关视图或映射缩减的任何内容。请参阅文档:http ://www.couchbase.com/docs/couchbase-manual-1.8.pdf
Couchbase 看起来更像是一个带有由 CouchDB 支持的持久层的 memcache 服务器,也许它不符合您的需求。您可以存储的数据可以是从 int 到序列化数据(例如 JSON)的任何数据,但在这种情况下,您必须在所有端对其进行反序列化。
为什么使用 Couchbase 而不是 CouchDB?我没有使用过旧 Couchbase 版本的经验,但我知道这些名称,即使它们非常相似,也指的是不同的应用程序,如果它确实是您正在考虑的应用程序,也许值得进一步研究。
编辑 有趣的链接:http://damienkatz.net/2012/01/the_future_of_couchdb.html也阅读评论,其中有很多有趣的东西。
从评论中我了解到 Damien Katz 现在正在开发一个名为 Couchbase 的新项目,但这不是 CouchDB 的最后一个版本,而只是另一个 NoSQL 数据库。
因此,如果您习惯使用 CouchDB,则可以使用 CouchDB 的最新版本。或者,如果您想考虑切换到 Couchbase,请查看 2.0 的功能、路线图等,并调查它是否真的适合您的需求。
| 归档时间: |
|
| 查看次数: |
3197 次 |
| 最近记录: |