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
  • 相关阅读:
    springcloud12-spring cloud stream
    Linux上安装gitbook并拉取git项目编译
    Python 之一条命令生成项目依赖包文件 requirements.txt
    python跨模块使用全局变量的实现方法
    微信朋友圈测试用例
    linux安装maven
    jenkins上集成sonar
    windows上安装sonar并使用其分析项目
    jquery 点击同级元素隐藏,再点击显示
    10进制转16进制自动补全8位 并高低位转换
  • 原文地址:https://www.cnblogs.com/shijun/p/5287625.html
Copyright © 2011-2022 走看看