2

我正在使用包含 Enyim.Caching 的 .NET Couchbase 客户端 API。我有一个大约 55 兆的 DataTable,它没有被缓存。我知道项目大小为 20 兆的“软”最大值。

如何更改默认的最大项目大小以缓存此对象?

4

2 回答 2

2

您使用的是 Memcached 存储桶还是 Couchbase 存储桶?如果您使用的是 Memcached 存储桶,那么您可能会达到 1MB 的限制。快速示例程序:

var config = new CouchbaseClientConfiguration();
config.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default"));
config.Bucket = "memcached";
config.BucketPassword = "qwerty";
var client = new CouchbaseClient(config);

var size = 1000000;
var sb = new StringBuilder();
for (int i = 0; i < size; i++) { sb.Append("z"); };
var data = sb.ToString();
var result = client.Store(StoreMode.Set, "foo", data);
Console.WriteLine(data.Length + ": " + result);

size变量设置为 1000000 时,result为真。当size设置为刚刚超过一个 MB,比如 1100000,那么result将是错误的。如果您改为使用 Couchbase 存储桶,则可以设置size为 20000000 并且该result值为 true。但是,设置size为 21000000 将导致Store操作失败。

如果您没有使用 Memcached 存储桶,请告诉我...另外,请注意,我在此示例中使用带有 1.8 服务器的 .NET 1.0 客户端。

- 约翰

于 2012-01-31T18:39:01.250 回答
0

Per MikeW 来自 Couchbase 论坛的帖子

这需要修改源代码中的常量并自己构建 Couchbase。

似乎没有办法绕过它。谢谢您的帮助。

于 2012-02-02T20:17:42.040 回答