public void ReadOnlyConnectionSlavesTest() { var slaves = Server26379.SentinelSlaves(ServiceName); var config = new ConfigurationOptions { TieBreaker = "", ServiceName = TestConfig.Current.SentinelSeviceName, }; foreach (var kv in slaves) { Assert.Equal("slave", kv.ToDictionary()["flags"]); config.EndPoints.Add(kv.ToDictionary()["name"]); } var readonlyConn = ConnectionMultiplexer.Connect(config); Thread.Sleep(5000); Assert.True(readonlyConn.IsConnected); var db = readonlyConn.GetDatabase(); var s = db.StringGet("test"); Assert.True(s.IsNullOrEmpty); //var ex = Assert.Throws<RedisConnectionException>(() => db.StringSet("test", "try write to read only instance")); //Assert.StartsWith("No connection is available to service this operation", ex.Message); }
public void SentinelSlavesTest() { var slaveConfigs = Server26379.SentinelSlaves(ServiceName); Assert.True(slaveConfigs.Length > 0); Assert.True(slaveConfigs[0].ToDictionary().ContainsKey("name")); Assert.Equal("slave", slaveConfigs[0].ToDictionary()["flags"]); foreach (var config in slaveConfigs) { foreach (var kvp in config) { Log("{0}:{1}", kvp.Key, kvp.Value); } } }