我们有一个在生产中运行的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存储桶中。所以问题就变成了:
谢谢!
答案 0 :(得分:2)
我认为你应该考虑运行Moxi,它是对于couchbase的memcached代理。您可以使用目标couchbase存储桶配置Moxi。
couchbase群集会自动启动支持群集的moxi网关,您可以将其指向您的Web /应用程序服务器。这就是couchbase所说的“服务器端moxi”。
或者,您可以在每个Web / app服务器上安装moxi,因此只需连接到localhost:11211即可。 Moxi处理couchbase集群的持久连接。这就是couchbase所说的“客户端moxi”。