Couchbase:如何使缓存持久性成为一种选择?

时间:2016-07-28 14:29:09

标签: caching memcached couchbase

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

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

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

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

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

  • 我们可以控制在Couchbase存储桶中存储哪个项目 memcache桶?为此,我们是否必须更改libmemcached API以及与之相关的所有应用程序代码?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

couchbase群集会自动启动支持群集的moxi网关,您可以将其指向您的Web /应用程序服务器。这就是couchbase所说的“服务器端moxi”。

或者,您可以在每个Web / app服务器上安装moxi,因此只需连接到localhost:11211即可。 Moxi处理couchbase集群的持久连接。这就是couchbase所说的“客户端moxi”。