public static ICommandingDependencyResolver UseCommandRedisCache(this ICommandingDependencyResolver resolver, string connectionString) { ICacheAdapter adapter = new RedisCacheAdapter(new Lazy <ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(connectionString))); resolver.RegisterInstance(adapter); return(resolver); }
public static ICommandingDependencyResolver UseCommandRedisCache(this ICommandingDependencyResolver resolver, Lazy <ConnectionMultiplexer> multiplexer) { ICacheAdapter adapter = new RedisCacheAdapter(multiplexer); resolver.RegisterInstance(adapter); return(resolver); }
private ICache GetCache(CacheConfig config) { ICache cache = null; var normalisedCacheToUse = !string.IsNullOrWhiteSpace(config.CacheToUse) ? config.CacheToUse.ToLowerInvariant() : string.Empty; switch (normalisedCacheToUse) { case CacheTypes.MemoryCache: cache = new MemoryCacheAdapter(_logger); break; case CacheTypes.WebCache: cache = new WebCacheAdapter(_logger); break; case CacheTypes.AppFabricCache: cache = new AppFabricCacheAdapter(_logger, config); break; case CacheTypes.memcached: cache = new memcachedAdapter(_logger, config); break; case CacheTypes.redis: cache = new RedisCacheAdapter(_logger, config); break; default: cache = new MemoryCacheAdapter(_logger); break; } return(cache); }
public Cache CreateCache() { ISerializer serializer = null; switch (this._serializerType) { case SerializerType.ProtoBufNet: serializer = new ProtoBufSerializer(); break; case SerializerType.Json: break; default: throw new ArgumentOutOfRangeException(); } ILocalCacheAdapter firstLevelCache = null; switch (this._firstLevelCacheType) { case FirstLevelCacheType.None: break; case FirstLevelCacheType.ConcurrentDictionary: firstLevelCache = new DictionaryCacheAdapter(); break; default: throw new ArgumentOutOfRangeException(); } IDistributedCacheAdapter secondLevelCache = null; IMessenger messenger = null; switch (this._secondLevelCacheType) { case SecondLevelCacheType.None: break; case SecondLevelCacheType.Redis: if (this._redisInstances == null || !this._redisInstances.Any()) throw new ArgumentNullException("Missing redis instances configurations"); var redis = new RedisCacheAdapter(this._redisInstances, this._redisDatabase, serializer); secondLevelCache = redis; messenger = redis; break; default: throw new ArgumentOutOfRangeException(); } return new Cache(firstLevelCache, secondLevelCache, messenger); }