【问题标题】:Couchbase bucket forcing documents to expire on server restartCouchbase 存储桶强制文档在服务器重启时过期
【发布时间】:2014-02-07 16:34:21
【问题描述】:

我计划使用 couchbase 存储桶来缓存数据库调用的结果。如果集群中的一个 couchbase 服务器出现故障并重新启动,我想强制该服务器上的任何持久文档过期。我怎样才能做到这一点? memcached bucket与couchbase bucket相比性能如何?

【问题讨论】:

  • 你的用例听起来很奇怪——也许你可以解释为什么你想做这样的事情?确保与 Couchbase 一致性的典型方法是设置多个副本之一;因此/当一个节点关闭时,副本将被提升并且数据仍然可用(并且一致)。
  • 场景:我想使用没有副本的 couchbase 作为从 SQL 数据库获取的数据的缓存。用户可能正在对 SQL 数据库进行更新,并且缓存应该失效。我的缓存过期策略是 10 分钟。如果缓存服务器宕机 5 分钟,最早的 5 分钟数据过期,可能由于 SQL 更新(我们不知道)导致剩余 5 分钟数据无效。因此,如果服务器重新启动,我想从空缓存开始。 HTH!

标签: couchbase


【解决方案1】:

如果一个项目有过期,Couchbase 会保持过期,因此如果您的项目在服务器关闭时过期并且您重新启动服务器,则该项目将在预热过程中被删除。

【讨论】:

  • 我明白了。如何清除所有持久化的文档,以防服务器在短时间内关闭以避免不一致。
【解决方案2】:

不支持仅刷新单个节点的 vbucket,但您可以通过简单地删除并重新创建存储桶来刷新整个存储桶(跨所有节点)。

这可以使用 REST API 完成 - 请参阅 Deleting a BucketCreating and Editing a Bucket。您也可以在 SDK 调用中包含此内容,具体取决于您使用的 SDK。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多