Official couchbase documentation说。
“如果您已经有一个使用Memcached协议的应用程序 然后您可以立即开始使用Couchbase服务器。如果是的话,你 可以简单地将您的应用程序指向此服务器,就像您一样 其他memcached服务器。没有代码更改或特殊库 需要,应用程序的行为将完全像对待 标准的memcached服务器。没有客户了解任何事情 它,数据被复制,持久化,集群可以 完全透明地扩大或缩小。“
我们已经有一个基于C的应用程序,它使用libmemcached C API处理memcached。 因为我们想要持久性(主要是),我们想转移到couchbase。 我们看到了前面提到的Couchbase报价并尝试了这个(使用Couchbase存储桶),这是一个令人愉快的惊喜。它就像那样工作。为此+1。
我们发现还存在Couchbase C api,以下是问题,
答案 0 :(得分:3)
1)如果libmemcached API足以使用Couchbase,那该怎么办? Couchbase C API提供?
当然,couchbase通过新的操作扩展了memcached协议,如触摸,观察,获取锁定,解锁,从副本读取等等。其中一些虽然可以在libmemcached中实现(我刚刚为touch命令做了补丁) ),不受vanilla memcached服务器的支持,因此在libmemcached中测试和维护会更困难。其他命令,例如observe,从副本读取,根本不能用libmemcached实现。 Couchbase的另一组API是对数据库索引的查询查询,使用map / reduce构建,libcouchbase能够执行此操作。
2)(继续)使用(现有)的缺点是什么 libmemached API与Couchbase类型的Couchbase服务器桶交谈?
Libmemcached,就像您可以找到的任何其他memcached客户端一样,被视为“哑”或“遗留”客户端,而不是“智能”客户端。不同之处在于客户端是否了解群集拓扑。传统客户端必须通过群集中的单个入口点或进行某种平衡(如循环法)。默认情况下,它将使用服务器端代理,它可以识别拓扑,并且可以在此节点不拥有密钥的情况下重新路由。因此,当网络/ CPU /内存容量足以满足请求时,您可能会达到此代理的限制(尽管可以在客户端设置此代理)。智能客户端了解群集拓扑并遵循其更改,以便它可以消除密钥的重新路由。
3)升级我们的应用程序使用有什么好处 Couchbase C api与Couchbase服务器交谈?
您将能够访问memcached的其他API和扩展API。此外,Couchbase客户端可以优化网络使用。