示例#1
0
        public void Test_IfProviderReturnsTheCorrectConnectionString_IfARedisServiveInstanceIsBounded()
        {
            var environment = @"
                                 {
                                      'p-redis': [
                                        {
                                          'credentials': {
                                            'host': '10.66.32.54',
                                            'password': '******',
                                            'port': 43887
                                          },
                                          'syslog_drain_url': null,
                                          'volume_mounts': [],
                                          'label': 'p-redis',
                                          'provider': null,
                                          'plan': 'shared-vm',
                                          'name': 'autosource_redis_cache',
                                          'tags': [
                                            'pivotal',
                                            'redis'
                                          ]
                                        }
                                      ]
                                    }
                                  ";

            Environment.SetEnvironmentVariable("VCAP_SERVICES", environment);

            var configuration = new ConfigurationBuilder().AddCloudFoundry().Build();
            var provider      = new RedisConnectionProvider(configuration);

            Assert.Equal("10.66.32.54:43887,password=4254bd8b-7f83-4a8d-8f38-8206a9d7a9f7,allowAdmin=false,abortConnect=true,resolveDns=false,ssl=false", provider.GetConnectionString());
        }
示例#2
0
        public void Test_IfProviderReturnsTheCorrectConnectionString_IfARedisServiveInstanceIsBounded()
        {
            var environment = @"
                                 {
                                      ""p-redis"": [
                                        {
                                          ""credentials"": {
                                            ""host"": ""10.66.32.54"",
                                            ""password"": ""4254bd8b-7f83-4a8d-8f38-8206a9d7a9f7"",
                                            ""port"": 43887
                                          },
                                          ""syslog_drain_url"": null,
                                          ""volume_mounts"": [],
                                          ""label"": ""p-redis"",
                                          ""provider"": null,
                                          ""plan"": ""shared-vm"",
                                          ""name"": ""autosource_redis_cache"",
                                          ""tags"": [
                                            ""pivotal"",
                                            ""redis""
                                          ]
                                        }
                                      ]
                                    }
                                  ";

            Environment.SetEnvironmentVariable("VCAP_SERVICES", environment);

            var configuration = new ConfigurationBuilder().AddCloudFoundry().Build();
            var provider      = new RedisConnectionProvider(configuration);

            Assert.Equal("10.66.32.54:43887,password=4254bd8b-7f83-4a8d-8f38-8206a9d7a9f7,allowAdmin=false,abortConnect=true,resolveDns=false,ssl=false", provider.GetConnectionString());
        }
示例#3
0
        public void Test_IfImplementsIRedisConnectionProvider()
        {
            var configuration = new ConfigurationBuilder().Build();
            var provider      = new RedisConnectionProvider(configuration);

            Assert.IsAssignableFrom <IRedisConnectionProvider>(provider);
        }
示例#4
0
 public RedisMessageStore(RedisConnectionProvider redisConnectionProvider, IDeserializer deserializer,
                          ISerializer serializer)
 {
     _redisConnectionProvider = redisConnectionProvider;
     _inMemoryMessageStore    = new InMemoryMessageStore();
     _deserializer            = deserializer;
     _serializer = serializer;
 }
 public RedisTopicStore(RedisConnectionProvider redisConnectionProvider, ILogger <RedisTopicStore> logger,
                        IServiceProvider serviceProvider)
 {
     _redisConnectionProvider = redisConnectionProvider;
     _logger          = logger;
     _serviceProvider = serviceProvider;
     _queues          = new List <ITopic>();
 }
示例#6
0
        public void Test_IfProviderReturnsTheCorrectConnectionString_IfARedisServiveInstanceIsNotBounded()
        {
            Environment.SetEnvironmentVariable("VCAP_SERVICES", string.Empty);

            var configuration = new ConfigurationBuilder().AddCloudFoundry().Build();
            var provider      = new RedisConnectionProvider(configuration);

            Assert.Equal("localhost:6379,allowAdmin=false,abortConnect=true,resolveDns=false,ssl=false", provider.GetConnectionString());
        }
示例#7
0
        /// <summary>
        /// Use redis based store
        /// </summary>
        /// <param name="connectionString">Connection string to redis server</param>
        public BrokerBuilder UserRedisStore(string connectionString)
        {
            var redisConnectionProvider = new RedisConnectionProvider(connectionString);

            _serviceCollection.AddSingleton(redisConnectionProvider);
            _serviceCollection.AddSingleton <IMessageStore, RedisMessageStore>();
            _serviceCollection.AddSingleton <ITopicStore, InMemoryTopicStore>();

            return(this);
        }
示例#8
0
        public DistributedLockProvider(RedisConnectionProvider connectionProvider, IOptions <LockOptions> options, ILogger <DistributedLockProvider> logger)
        {
            _options    = options.Value;
            _connection = connectionProvider.GetConnection();
            _db         = _connection.GetDatabase();
            _expire     = TimeSpan.FromSeconds(_options.ExpireTimeSeconds);

            _script = $@"
local i
i = redis.call('incr',KEYS[1])
if tonumber(i) == 1 then 
redis.call('expire', KEYS[1], {_options.ExpireTimeSeconds}) 
end
return i 
";
            _logger = logger;
        }
示例#9
0
 public RedisController(RedisConnectionProvider connectionProvider)
 {
     this.connectionProvider = connectionProvider;
 }
示例#10
0
 public RedisConsumer()
 {
     _redisConnection = RedisConnectionProvider.GetConnection("localhost");
     _consumer        = _redisConnection?.GetSubscriber();
 }
        StackExchange.Redis.IDatabase RedisDatabaseBuilder()
        {
            var provider = new RedisConnectionProvider();

            return(provider.GetConnection().GetDatabase());
        }