【问题标题】:Couchbase memcached bucket alternativesCouchbase memcached 存储桶替代品
【发布时间】:2015-06-19 22:50:44
【问题描述】:

我目前正在寻找分布式缓存提供程序的解决方案。目前我正在考虑使用 Memcached 存储桶的 Couchbase 3 服务器。我不确定,这是我需要的正确的东西。我不需要磁盘持久化和复制,因为信息并不重要,所以 Couchbase 存储桶在这种情况下似乎不太合适。

在我的测试中,我遇到了 memcached 存储桶的一些问题 - .NET 客户端不会对节点故障做出反应,允许插入具有现有密钥的条目(在故障节点上)。故障节点再次恢复后,存在两个具有相同密钥的文档,并且只有第一个可以访问。此外,我需要重新初始化存储桶对象,以便它可以知道故障转移的节点,或者它会在 Get 请求上不断抛出“ClientFailure”状态(这是一种缓慢的操作)。这和每个文档 1 mb 的大小限制让我重新思考我的方向是否正确。

有没有更好的方法来通知客户端失败的节点?如果没有,你能推荐我另一种适合我情况的技术吗?

【问题讨论】:

  • 请注意,使用 Couchbase 存储桶,您可以将复制因子设置为无...而且持久性是在后台异步完成的,如果您不这样做,您不必等待它被确认不需要。此外,在 Couchbase 存储桶中,文档的大小限制为 20MB。

标签: .net memcached couchbase bucket


【解决方案1】:

您说您不需要持久性和复制,但随后担心节点故障。那不合适。

我的建议是使用 Couchbase 存储桶,并且您确实需要 1 的复制因子。您希望这是一个高度可用的缓存(这是 Couchbase 的一个非常常见的用例),具有多个节点的复制将提供你那个可用性。您说数据并不重要,这可能是真的,但该数据的可用性至关重要。否则,您将不会寻找缓存。

因此,使用 Couchbase SDK 切换到 Couchbase 存储桶,您将获得所需的 HA 缓存、所需的性能和所需的易用性。

【讨论】:

    【解决方案2】:

    根据 db-engines.com (https://db-engines.com/en/system/Ignite%3BMemcached%3BRedis%3Bcouchbase),Redis 似乎是缓存的最佳解决方案。

    • Couchbase 不支持复制 memcached 存储桶。

    • 我也试过 Apache Ignite(相当新的项目),它兼容 memcached(二进制协议)并支持分片和复制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多