示例#1
0
        public void TryGetConnection_ConnectionSharing()
        {
            Utility.SetConfigUtilityToDefault();
            RedisSharedConnection redisSharedConnection = new RedisSharedConnection(RedisSessionStateProvider.configuration,
                                                                                    () => new FakeRedisClientConnection());
            IRedisClientConnection connection  = redisSharedConnection.TryGetConnection();
            IRedisClientConnection connection2 = redisSharedConnection.TryGetConnection();

            Assert.Equal(connection, connection2);
        }
示例#2
0
        public void TryGetConnection_CreateNewConnection()
        {
            Utility.SetConfigUtilityToDefault();
            RedisSharedConnection redisSharedConnection = new RedisSharedConnection(RedisSessionStateProvider.configuration,
                                                                                    () => new FakeRedisClientConnection());

            Assert.Null(redisSharedConnection.connection);
            IRedisClientConnection connection = redisSharedConnection.TryGetConnection();

            Assert.NotNull(connection);
            Assert.NotNull(redisSharedConnection.connection);
        }
        public RedisOutputCacheConnectionWrapper(ProviderConfiguration configuration)
        {
            this.configuration = configuration;

            // only single object of RedisSharedConnection will be created and then reused
            if (sharedConnection == null)
            {
                lock (lockForSharedConnection)
                {
                    if (sharedConnection == null)
                    {
                        sharedConnection = new RedisSharedConnection(configuration);
                        redisUtility     = new RedisUtility(configuration);
                    }
                }
            }
            redisConnection = new StackExchangeClientConnection(configuration, redisUtility, sharedConnection);
        }
示例#4
0
        public RedisOutputCacheConnectionWrapper(ProviderConfiguration configuration)
        {
            this.configuration = configuration;

            // Shared connection is created by server when it starts. don't want to lock everytime when check == null.
            // so that is why pool == null exists twice.
            if (sharedConnection == null)
            {
                lock (lockForSharedConnection)
                {
                    if (sharedConnection == null)
                    {
                        sharedConnection = new RedisSharedConnection(configuration, () => new StackExchangeClientConnection(configuration));
                    }
                }
            }
            redisConnection = sharedConnection.TryGetConnection();
        }
 public RedisOutputCacheConnectionWrapper(ProviderConfiguration configuration)
 {
     this.configuration = configuration;
     
     // Shared connection is created by server when it starts. don't want to lock everytime when check == null.
     // so that is why pool == null exists twice.
     if (sharedConnection == null)
     {
         lock (lockForSharedConnection)
         {
             if (sharedConnection == null)
             {
                 sharedConnection = new RedisSharedConnection(configuration,() => new StackExchangeClientConnection(configuration));
             }
         }
     }
     redisConnection = sharedConnection.TryGetConnection();
 }
        public RedisConnectionWrapper(ProviderConfiguration configuration, string id)
        {
            this.configuration = configuration;
            Keys = new KeyGenerator(id, configuration.ApplicationName);

            // only single object of RedisSharedConnection will be created and then reused
            if (sharedConnection == null)
            {
                lock (lockForSharedConnection)
                {
                    if (sharedConnection == null)
                    {
                        sharedConnection = new RedisSharedConnection(configuration);
                        redisUtility     = new RedisUtility(configuration);
                    }
                }
            }
            redisConnection = new StackExchangeClientConnection(configuration, redisUtility, sharedConnection);
        }
示例#7
0
        public RedisConnectionWrapper(ProviderConfiguration configuration, string id)
        {
            this.configuration = configuration;
            Keys = new KeyGenerator(id, configuration.ApplicationName);

            // Pool is created by server when it starts. don't want to lock everytime when check pool == null.
            // so that is why pool == null exists twice.
            if (sharedConnection == null)
            {
                lock (lockForSharedConnection)
                {
                    if (sharedConnection == null)
                    {
                        sharedConnection = new RedisSharedConnection(configuration, () => new StackExchangeClientConnection(configuration));
                    }
                }
            }
            redisConnection = sharedConnection.TryGetConnection();
        }
 public RedisConnectionWrapper(ProviderConfiguration configuration, string id)
 {
     this.configuration = configuration;
     Keys = new KeyGenerator(id, configuration.ApplicationName);
     
     // Pool is created by server when it starts. don't want to lock everytime when check pool == null.
     // so that is why pool == null exists twice.
     if (sharedConnection == null)
     {
         lock (lockForSharedConnection)
         {
             if (sharedConnection == null)
             {
                 sharedConnection = new RedisSharedConnection(configuration,() => new StackExchangeClientConnection(configuration));
             }
         }
     }
     redisConnection = sharedConnection.TryGetConnection();
 }
示例#9
0
        public RedisObjectCacheConnectionWrapper(ProviderConfiguration configuration, string name)
        {
            this.configuration = configuration;

            // Shared connection is created by server when it starts. don't want to lock everytime when check == null.
            // so that is why pool == null exists twice.
            if (!sharedConnections.ContainsKey(name))
            {
                lock (lockForSharedConnection)
                {
                    if (!sharedConnections.ContainsKey(name))
                    {
                        sharedConnections[name] = new RedisSharedConnection(configuration, () => new StackExchangeClientConnection(configuration));
                        redisUtility            = new RedisUtility(configuration);
                    }
                }
            }
            redisConnection = sharedConnections[name].TryGetConnection();
        }
示例#10
0
 public IRedisClientConnection TryGetConnection()
 {
     if (connection != null)
     {
         //case 1: already available connection
         return(connection);
     }
     else
     {
         //case 2: we are allowed to create first connection
         lock (lockObject)
         {
             // make sure it is not created by other request in between
             if (connection == null)
             {
                 connection = factory.Invoke();
                 connection.Open();
             }
         }
         return(connection);
     }
 }
 public IRedisClientConnection TryGetConnection()
 {
     if (connection != null)
     {
         //case 1: already available connection
         return connection;
     }
     else
     {
         //case 2: we are allowed to create first connection
         lock (lockObject)
         {
             // make suer it is not created by other request in between
             if (connection == null)
             {
                 connection = factory.Invoke();
                 connection.Open();
             }
         }
         return connection;
     }
 }