public void Start(bool captureResults = true) { _activity = new ActivityTracer("Begin transaction"); Active = true; _captureResults = captureResults; string status = _connection.Call(RedisReader.ReadStatus, "MULTI"); OnTransactionStarted(status); }
public string Monitor() { using (new ActivityTracer("Beging monitor")) { string status = _connection.Call(RedisReader.ReadStatus, "MONITOR"); while (true) { object message; try { message = _connection.Read(); } catch (Exception e) { if (_connection.Connected) { throw e; } return(status); } if (MonitorReceived != null) { MonitorReceived(this, new RedisMonitorEventArgs(message)); } } } }
private T Write <T>(RedisCommand <T> command) { if (!_connection.Connected) { throw new InvalidOperationException("RedisSentinelClient is not connected"); } return(_connection.Call(command.Parser, command.Command, command.Arguments)); }
/// <summary> /// Create new instance of subscribe-only RedisClient /// </summary> /// <param name="host">Redis server host or IP</param> /// <param name="port">Redis server port</param> /// <param name="password">Redis server password</param> public RedisSubscriptionClient(string host, int port, string password = null) { _activity = new ActivityTracer("New Redis subscription client"); _connection = new RedisConnection(host, port); _connection.Connect(0, 1000); if (!String.IsNullOrEmpty(password)) { var cmd = RedisCommand.Auth(password); _connection.Call(cmd.Parser, cmd.Command, cmd.Arguments); } _readCancel = new CancellationTokenSource(); _reader = Task.Factory.StartNew(Read_Task); _callbackDispatchers = new Dictionary <string, RedisSubscriptionDispatcher>(); }