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; }
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(); }
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(); }