我正在使用包含 Enyim.Caching 的 .NET Couchbase 客户端 API。我有一个大约 55 兆的 DataTable,它没有被缓存。我知道项目大小为 20 兆的“软”最大值。
如何更改默认的最大项目大小以缓存此对象?
您使用的是 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 客户端。
- 约翰