【问题标题】:To what extent is Couchbase a drop in replacement for MemcachedCouchbase 在多大程度上是 Memcached 的替代品
【发布时间】:2013-06-12 13:08:14
【问题描述】:

Official couchbase documentation 说。

"如果您已经有一个使用 Memcached 协议的应用程序 然后您可以立即开始使用您的 Couchbase 服务器。如果是这样,你 可以像您一样简单地将您的应用程序指向该服务器 其他 memcached 服务器。没有代码更改或特殊库 需要,并且应用程序的行为将与针对 标准的 memcached 服务器。在客户不知情的情况下 它,数据正在被复制、持久化,并且集群可以 完全透明地扩展或收缩。”

我们已经有一个基于 C 的应用程序,它通过使用 libmemcached C API 与 memcached 一起工作。 我们想搬到沙发基地,因为我们想要持久性(主要是)。 我们看到了前面提到的 Couchbase 引用并尝试了这个(使用 Couchbase 存储桶),这是一个惊喜。它起作用了,就像那样。为此 +1。

我们发现还有一个Couchbase C api,下面是问题,

  1. 如果 libmemcached API 足以使用 Couchbase,那么 Couchbase C API 提供什么?
  2. (继续)使用(现有)libmemaced API 与 Couchbase 服务器的 Couchbase 类型存储桶通信有哪些缺点?
  3. 升级我们的应用程序以使用 Couchbase C api 与 Couchbase 服务器对话有什么优势?

【问题讨论】:

标签: c nosql memcached couchbase libmemcached


【解决方案1】:

1) 如果 libmemcached API 足以使用 Couchbase,那么 Couchbase C API 提供?

当然,couchbase 使用新的操作扩展了 memcached 协议,例如触摸、观察、获取锁定、解锁、从副本读取等。其中一些虽然可以在 libmemcached 中实现(我刚刚为触摸命令完成了补丁),vanilla memcached 服务器不支持,因此在 libmemcached 中测试和维护将更加困难。其他命令,如观察、从副本读取,根本无法根据 libmemcached 实现。 Couchbase 的另一组 API 是对数据库索引的视图查询,它使用 map/reduce 构建,libcouchbase 可以做到。

2)(继续)使用(现有)有什么缺点 libmemaced API 与 Couchbase 服务器的 Couchbase 类型存储桶对话?

Libmemcached 与您可以找到的任何其他 memcached 客户端一样,被视为“愚蠢”或“传统”客户端,而不是“智能”客户端。区别在于客户端是否知道集群拓扑。旧客户端必须通过集群中的单个入口点或进行某种平衡(如循环)。默认情况下,它将使用服务器端代理,它知道拓扑并且可以在该节点不拥有密钥的情况下重新路由。因此,当网络/CPU/内存容量实际上足以处理请求时,您可能会达到此代理的限制(尽管可以在客户端设置此代理)。智能客户端知道集群拓扑并跟踪其变化,因此它可以消除密钥的重新路由。

3) 升级我们的应用程序使用有什么好处 Couchbase C api 与 Couchbase 服务器对话?

您将能够访问 memcached 的其他 API 和扩展 API。 Couchbase 客户端还可以优化网络使用。

【讨论】:

  • 谢谢@avsej 我想我从一个官方的沙发库资源中得到了答案:)
猜你喜欢
  • 2015-06-19
  • 1970-01-01
  • 2012-12-26
  • 2023-03-13
  • 2020-05-11
  • 2010-09-08
  • 2010-11-21
  • 1970-01-01
  • 2021-10-10
相关资源
最近更新 更多