コード例 #1
0
        public InMemoryCacheClient(InMemoryCacheClientOptions options = null)
        {
            ShouldCloneValues = true;
            var loggerFactory = options?.LoggerFactory ?? NullLoggerFactory.Instance;

            _logger = loggerFactory.CreateLogger <InMemoryCacheClient>();
            _memory = new ConcurrentDictionary <string, CacheEntry>();
        }
コード例 #2
0
 public RedisHybridCacheClient(RedisCacheClientOptions options, InMemoryCacheClientOptions localOptions = null)
     : base(new RedisCacheClient(o => o
                                 .ConnectionMultiplexer(options.ConnectionMultiplexer)
                                 .Serializer(options.Serializer)
                                 .LoggerFactory(options.LoggerFactory)),
            new RedisMessageBus(o => o
                                .Subscriber(options.ConnectionMultiplexer.GetSubscriber())
                                .Topic("cache-messages")
                                .Serializer(options.Serializer)
                                .LoggerFactory(options.LoggerFactory)), localOptions, options.LoggerFactory)
 {
 }
コード例 #3
0
        public InMemoryCacheClient(InMemoryCacheClientOptions options = null)
        {
            if (options == null)
            {
                options = new InMemoryCacheClientOptions();
            }
            _shouldClone = options.CloneValues;
            _maxItems    = options.MaxItems;
            var loggerFactory = options.LoggerFactory ?? NullLoggerFactory.Instance;

            _logger = loggerFactory.CreateLogger <InMemoryCacheClient>();
            _memory = new ConcurrentDictionary <string, CacheEntry>();
        }
コード例 #4
0
 public RedisHybridCacheClient(RedisHybridCacheClientOptions options, InMemoryCacheClientOptions localOptions = null)
     : base(new RedisCacheClient(o => o
                                 .ConnectionMultiplexer(options.ConnectionMultiplexer)
                                 .Serializer(options.Serializer)
                                 .LoggerFactory(options.LoggerFactory)
                                 .ShouldThrowOnSerializationError(options.ShouldThrowOnSerializationError)),
            new RedisMessageBus(o => o
                                .Subscriber(options.ConnectionMultiplexer.GetSubscriber())
                                .Topic(options.RedisChannelName)
                                .Serializer(options.Serializer)
                                .LoggerFactory(options.LoggerFactory)), localOptions, options.LoggerFactory)
 {
 }
コード例 #5
0
 public HybridCacheClient(ICacheClient distributedCacheClient, IMessageBus messageBus, InMemoryCacheClientOptions localCacheOptions = null, ILoggerFactory loggerFactory = null)
 {
     _logger           = loggerFactory?.CreateLogger <HybridCacheClient>() ?? NullLogger <HybridCacheClient> .Instance;
     _distributedCache = distributedCacheClient;
     _messageBus       = messageBus;
     _messageBus.SubscribeAsync <InvalidateCache>(OnRemoteCacheItemExpiredAsync).AnyContext().GetAwaiter().GetResult();
     if (localCacheOptions == null)
     {
         localCacheOptions = new InMemoryCacheClientOptions {
             LoggerFactory = loggerFactory
         }
     }
     ;
     _localCache = new InMemoryCacheClient(localCacheOptions);
     _localCache.ItemExpired.AddHandler(OnLocalCacheItemExpiredAsync);
 }
コード例 #6
0
 public InMemoryCacheClient(InMemoryCacheClientOptions options = null) : base(options?.LoggerFactory)
 {
     ShouldCloneValues = true;
     _memory           = new ConcurrentDictionary <string, CacheEntry>();
     InitializeMaintenance();
 }