我正在使用包含Enyim.Caching的.NET Couchbase客戶端API。我有一個大約55兆數據表,它沒有得到緩存。我明白,20 megs的項目大小有一個「軟」最大值。如何更改默認Couchbase項目大小?
如何更改默認最大項目大小以緩存此對象?
我正在使用包含Enyim.Caching的.NET Couchbase客戶端API。我有一個大約55兆數據表,它沒有得到緩存。我明白,20 megs的項目大小有一個「軟」最大值。如何更改默認Couchbase項目大小?
如何更改默認最大項目大小以緩存此對象?
您使用的是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
將爲false。如果您使用Couchbase存儲桶,則可以將size
設置爲20000000,result
將爲true。但是,將size
設置爲21000000將導致Store
操作失敗。
如果您沒有使用Memcached存儲桶,請讓我知道......另外,請注意,本示例使用.NET 1.0客戶端和1.8服務器。
約翰 -
欣賞響應,但我實際上改變了這個問題,因爲我最初錯誤地記錄了字節。我試圖存儲55個megs而不是5.5個megs,這改變了我的問題。不過,我將Couchbase v1.8與.NET Couchbase客戶端API一起使用。 – DougJones
使用Memcached存儲桶時,有沒有辦法繞過1MB的限制? –
狀態碼3是E2BIG,如果對象小於20MB,則不應該獲取它。你可以仔細檢查大小,併發布你的代碼? – mikewied
編輯的問題。我把小數點放在錯誤的地方。這是55梅格,而不是5.5梅格的項目。謝謝您的幫助! – DougJones