コード例 #1
0
 public RuntimeRegionMemoryCache(RedisCacheRegionConfiguration configuration, string keyPrefix = null)
 {
     _keyPrefix                  = keyPrefix;
     _useSlidingExpiration       = configuration.UseSlidingExpiration;
     _infiniteAbsoluteExpiration = _useSlidingExpiration || configuration.Expiration == TimeSpan.Zero;
     _expiration                 = configuration.Expiration;
 }
コード例 #2
0
        /// <inheritdoc />
        protected override CacheBase BuildCache(RedisCacheRegionConfiguration regionConfiguration, IDictionary <string, string> properties)
        {
            var strategies = new List <AbstractRegionStrategy>();

            foreach (var connectionMultiplexer in _connectionMultiplexers)
            {
                var regionStrategy =
                    CacheConfiguration.RegionStrategyFactory.Create(connectionMultiplexer, regionConfiguration, properties);
                regionStrategy.Validate();
                strategies.Add(regionStrategy);
            }
            return(new DistributedRedisCache(regionConfiguration, strategies));
        }
コード例 #3
0
        public override AbstractRegionStrategy Create(IConnectionMultiplexer connectionMultiplexer, RedisCacheRegionConfiguration configuration,
                                                      IDictionary <string, string> properties)
        {
            var memoryCache = new RuntimeRegionMemoryCache(configuration, Guid.NewGuid().ToString());

            if (configuration.RegionStrategy == typeof(FastTwoLayerCacheRegionStrategy))
            {
                return(new FastTwoLayerCacheRegionStrategy(connectionMultiplexer, configuration, memoryCache, properties));
            }

            if (configuration.RegionStrategy == typeof(TwoLayerCacheRegionStrategy))
            {
                return(new TwoLayerCacheRegionStrategy(connectionMultiplexer, configuration, memoryCache, properties));
            }

            if (configuration.RegionStrategy == typeof(DistributedLocalCacheRegionStrategy))
            {
                return(new DistributedLocalCacheRegionStrategy(connectionMultiplexer, configuration, memoryCache, properties));
            }

            return(base.Create(connectionMultiplexer, configuration, properties));
        }
コード例 #4
0
 public DistributedRedisCache(RedisCacheRegionConfiguration configuration, IEnumerable <AbstractRegionStrategy> regionStrategies)
 {
     _regionStrategies = regionStrategies.ToArray();
     RegionName        = configuration.RegionName;
     Timeout           = Timestamper.OneMs * (int)configuration.LockConfiguration.KeyTimeout.TotalMilliseconds;
 }