public RuntimeRegionMemoryCache(RedisCacheRegionConfiguration configuration, string keyPrefix = null) { _keyPrefix = keyPrefix; _useSlidingExpiration = configuration.UseSlidingExpiration; _infiniteAbsoluteExpiration = _useSlidingExpiration || configuration.Expiration == TimeSpan.Zero; _expiration = configuration.Expiration; }
/// <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)); }
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)); }
public DistributedRedisCache(RedisCacheRegionConfiguration configuration, IEnumerable <AbstractRegionStrategy> regionStrategies) { _regionStrategies = regionStrategies.ToArray(); RegionName = configuration.RegionName; Timeout = Timestamper.OneMs * (int)configuration.LockConfiguration.KeyTimeout.TotalMilliseconds; }