一、Couchbase
使用CacheManager元件,在配置Couchbase緩存支援時,由于對配置節cache handle命名規則要求不了解,費了點時間查了源碼才明白。
section配置節
<sectionGroup name="couchbaseClients">
<section name="couchbase" type="Couchbase.Configuration.Client.Providers.CouchbaseClientSection, Couchbase.NetClient" />
</sectionGroup>
cacheManager中的cache節點配置
<managers>
<cache name="cacheName" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">
<handle name="couchbaseClients/couchbase:default" ref="couchbaseHandle" expirationMode="Absolute" timeout="50s"/>
</cache>
</managers>
注意:
handleName的命名規則必須滿足可通過配置名稱找到CouchbaseClientSection對應配置節,即couchbaseClients下的couchbase
Bucket名為可選,預設為default
格式為<configKey>:<bucketName>
源碼參考CacheManager.Couchbase.BucketCacheHandle
// we can configure the bucket name by having "<configKey>:<bucketName>" as handle's
// name value
var nameParts = configuration.Key.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
Ensure(nameParts.Length > 0, "Handle key is not valid {0}", configuration.Key);
this.configurationName = nameParts[0];
if (nameParts.Length == 2)
{
this.bucketName = nameParts[1];
}
this.configuration = CouchbaseConfigurationManager.GetConfiguration(this.configurationName);
this.bucketConfiguration = CouchbaseConfigurationManager.GetBucketConfiguration(this.configuration, this.bucketName);
this.bucket = CouchbaseConfigurationManager.GetBucket(this.configuration, this.configurationName, this.bucketName);
二、memcached
memcached配置時,對cacheManager中的cache節點handle的命名也和Couchbase類型,配置如下
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup>
<managers>
<cache name="cacheName" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">
<handle name="enyim.com/memcached" ref="memcachedHandle"/>
</cache>
</managers>
或者
<managers>
<cache name="cacheName" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">
<handle name="default" ref="memcachedHandle"/>
</cache>
</managers>
handle命名為enyim.com/memcached或default,default時元件自動為轉化為enyim.com/memcached