我最近Enyim Memcached
启动并运行,它工作得很好。使用图书馆,我可以毫无问题地存储和检索项目。
但是,我想知道是否有办法从缓存中检索所有项目。我知道您可以通过其键检索项目:
MemcachedClient client = new MemcachedClient()
object o = client.Get("key");
但我似乎看不到GetAll()
或类似的方法,我错过了什么吗?
我想详细说明大顺的回答。他是正确的,没有办法从标准 memcached 中取出所有键,但是还有其他风格的 memcached 允许您通过点击流来做到这一点。如果你使用 Membase 服务器(如果你只使用缓存桶 Membase 几乎只是 memcached),你可以这样做,或者你可以使用 memcached 的 Membase 分支,可以在这里找到https://github.com/membase/memcached。Membase 分支绝对可以安全使用,许多顶级 memcached 贡献者为 Membase(现为 Couchbase)工作,并将此分支中的内容贡献回主 memcached 分支。
另一方面,Enyim 客户端不支持 tap API,但有支持 tap 的 Java、C/C++、python 和 ruby 客户端。您要做的是创建一个分接转储流,该流将向您发送所有键值对 memcached/Membase。
不,你不能。Memchached 不是为此目的而设计的(缓存并不意味着检索所有项目,这是毫无意义的)。