Inheritance: BaseCacheStrategy, IObjectCacheStrategy
Exemple #1
0
        /// <summary>
        /// 注册 Memcached 缓存信息
        /// </summary>
        /// <param name="registerService">RegisterService</param>
        /// <param name="memcachedConfig">memcached连接字符串列表</param>
        /// <param name="memcachedObjectCacheStrategyInstance">缓存策略的委托,第一个参数为 memcachedConfig</param>
        /// <returns></returns>
        public static IRegisterService RegisterCacheMemcached(this IRegisterService registerService,
                                                              Dictionary <string, int> memcachedConfig,
                                                              Func <Dictionary <string, int>, IObjectCacheStrategy> memcachedObjectCacheStrategyInstance)
        {
            MemcachedObjectCacheStrategy.RegisterServerList(memcachedConfig);

            //此处先执行一次委托,直接在下方注册结果,提高每次调用的执行效率
            IObjectCacheStrategy objectCacheStrategy = memcachedObjectCacheStrategyInstance(memcachedConfig);

            if (objectCacheStrategy != null)
            {
                CacheStrategyFactory.RegisterObjectCacheStrategy(() => objectCacheStrategy);//Memcached
            }

            return(registerService);
        }
 public MemcachedCacheLock(MemcachedObjectCacheStrategy strategy, string resourceName, string key, int retryCount, TimeSpan retryDelay)
     : base(strategy, resourceName, key, retryCount, retryDelay)
 {
     _mamcachedStrategy = strategy;
     LockNow();//立即等待并抢夺锁
 }
 public MemcachedCacheLock(MemcachedObjectCacheStrategy strategy, string resourceName, string key, int retryCount, TimeSpan retryDelay)
     : base(strategy, resourceName, key, retryCount, retryDelay)
 {
     _mamcachedStrategy = strategy;
 }