Example #1
0
        public static ICommandingDependencyResolver UseCommandRedisCache(this ICommandingDependencyResolver resolver, string connectionString)
        {
            ICacheAdapter adapter = new RedisCacheAdapter(new Lazy <ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(connectionString)));

            resolver.RegisterInstance(adapter);
            return(resolver);
        }
Example #2
0
        public static ICommandingDependencyResolver UseCommandRedisCache(this ICommandingDependencyResolver resolver, Lazy <ConnectionMultiplexer> multiplexer)
        {
            ICacheAdapter adapter = new RedisCacheAdapter(multiplexer);

            resolver.RegisterInstance(adapter);
            return(resolver);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }