示例#1
0
        public void Start(bool captureResults = true)
        {
            _activity       = new ActivityTracer("Begin transaction");
            Active          = true;
            _captureResults = captureResults;
            string status = _connection.Call(RedisReader.ReadStatus, "MULTI");

            OnTransactionStarted(status);
        }
示例#2
0
 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));
        }
示例#4
0
 /// <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>();
 }