Couchbase:如何使缓存持久化成为一个选项?

Couchbase: How to make cache persistence an option?

我们在生产中有一个 memcached 集群 运行 作为 MySQL 之上的缓存层。现在我们正在考虑用 Couchbase 替换 memcached 以避免冷缓存问题(在崩溃的情况下)并拥有托管缓存集群的这个很好的特性。

同时,我们希望尽量减少迁移到 Couchbase 的更改。我们可以尝试的一种方法是维护 libmemcached API 并设置一个 http 代理以将所有请求定向到 Couchbase。这样,应用程序代码中没有任何更改。如果我没理解错的话,这样 Couchbase 基本上就是一个托管的内存缓存集群。我们没有利用持久性缓存项。我们不能做一些事情,比如将某个缓存项标记为持久化:

# connect to couchbase like connecting to memcached
$ telnet localhost 11211

SET foo "foo value" # How can we make this item persistent in Couchbase?

我认为这是因为所有项目都存储在 memcached 存储桶中。所以问题变成了:

谢谢!

我认为您应该查看 运行 Moxi,它是 couchbase 的 memcached 代理。您可以使用目标 couchbase 存储桶配置 Moxi。

Couchbase 集群会自动启动一个集群感知 moxi 网关,您可以将 web/application 服务器指向该网关。这就是 couchbase 所说的 "server-side moxi".

或者,您可以在每个 web/app 服务器上安装 moxi,这样它们就可以连接到 localhost:11211。 Moxi 处理 couchbase 集群的持久连接。这就是 couchbase 所说的 "client-side moxi".