Ejemplo n.º 1
0
        public static ConnectionMultiplexer Connect(RedisConfiguration configuration)
        {

            string connectionString = configuration.ConnectionString;
            if (string.IsNullOrWhiteSpace(configuration.ConnectionString))
            {
                Func<RedisConfiguration, string> createConfigurationOptions = (config) =>
                {
                    var configurationOptions = new ConfigurationOptions()
                    {
                        AllowAdmin = config.AllowAdmin,
                        ConnectTimeout = config.ConnectionTimeout,
                        Password = config.Password,
                        Ssl = config.IsSsl,
                        SslHost = config.SslHost,
                        ConnectRetry = 10,
                        AbortOnConnectFail = false
                    };
                    foreach (var endpoint in configuration.Endpoints)
                    {
                        configurationOptions.EndPoints.Add(endpoint.Host, endpoint.Port);
                    }

                    return configurationOptions.ToString();
                };
                connectionString = createConfigurationOptions(configuration);
            }
            ConnectionMultiplexer connection;
            lock (connectLock)
            {
                if (!connections.TryGetValue(connectionString, out connection))
                {
                    var builder = new StringBuilder();
                    using (var log = new StringWriter(builder, CultureInfo.InvariantCulture))
                    {
                        connection = ConnectionMultiplexer.Connect(connectionString, log);
                    }

                    connection.ConnectionFailed += (sender, args) =>
                    {
                        connections.Remove(connectionString);
                    };

                    if (!connection.IsConnected)
                    {
                        throw new InvalidOperationException("Connection failed.\n" + builder.ToString());
                    }

                    connection.PreserveAsyncOrder = false;
                    connections.Add(connectionString, connection);
                }
            }

            return connection;
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var opts = new ConfigurationOptions();
            opts.ClientName = "Test-Clinet";
            opts.KeepAlive = 180;
            opts.Password = "******";
            Console.WriteLine(opts.ToString());

            var db = _redisClient.GetDatabase();
            db.StringSet("Key", Guid.NewGuid().ToString());
            var value = db.StringGet("Key");
            Console.WriteLine(value);

            Console.WriteLine("\nPress Any Key To Exit...");
            Console.ReadLine();
        }
Ejemplo n.º 3
0
        public static string GetRedisConnectionString()
        {
            var settings = ParseVCAP();
            ConfigurationOptions config = new ConfigurationOptions
            {
                EndPoints =
                    {
                        { settings.RedisHost, int.Parse(settings.RedisPort)}
                    },
                CommandMap = CommandMap.Create(new HashSet<string>
                { // EXCLUDE a few commands
                    /*"INFO", "CONFIG", "CLUSTER",
                    "PING", "ECHO", "CLIENT"*/
                }, available: false),
                KeepAlive = 180,
                DefaultVersion = new Version(2, 8, 8),
                Password = settings.RedisPassword
            };

            return config.ToString();
        }
        //public SingletonRedisConnection()
        //{
        //    this.redisConnectionString = "";
        //}

        public SingletonRedisConnection(ConfigurationOptions options)
        {
            this.redisConnectionString = options.ToString();
        }