zoukankan      html  css  js  c++  java
  • 基于CacheManager组件的缓存产品配置

    一、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/memcacheddefault,default时组件自动为转化为enyim.com/memcached
  • 相关阅读:
    C&C++ recap
    将Rmarkdown文件转为pdf文件
    ChIP-seq Peak caller MACS index out of range问题解决
    R正则表达式的问题
    nodejs+cheerio爬虫测试
    jetty更换图标
    MyEclipse无法生成class文件
    JPA @OneToOne stackoverflow
    jquery-validate--使用由于疏忽导致的问题1(input失去焦点没有被验证,submit才验证)
    组合框
  • 原文地址:https://www.cnblogs.com/shijun/p/5287625.html
Copyright © 2011-2022 走看看