title: Read values from ServiceStack.Redis Pipeline
body: <p>How to read values from ServiceStack.Redis pipeline? I saw examples on <a href="https://github.com/ServiceStack/ServiceStack.Redis/blob/master/tests/ServiceStack.Redis.Tests/RedisPipelineTests.cs" rel="nofollow">GitHub</a>, but I am not sure the code will work correctly if there are many QueueCommands at the same time(Let's say, 10000 for instance).</p>
  
  <p>QueueCommand's callback seems to be an async operation. Each of the QueueCommand can have a callback. When Pipeline.Flush() is called, all QueueCommands will be sent to Redis Server in Pipeline Mode and when one of the QueueCommands is executed, its callback would be called. </p>
  
  <p>My question is: When Pipeline.Flush() finishes, does the library guarantee that all callbacks are executed?</p>
  
  <p>Here is the code ServiceStack.Redis on GitHub</p>
  
  <pre class="lang-cs prettyprint-override"><code>    [Test]
      public void Can_call_single_operation_with_callback_3_Times_in_pipeline()
      {
          var results = new List&lt;long&gt;();
          Assert.That(Redis.GetValue(Key), Is.Null);
          using (var pipeline = Redis.CreatePipeline())
          {
              pipeline.QueueCommand(r =&gt; r.IncrementValue(Key), results.Add);
              pipeline.QueueCommand(r =&gt; r.IncrementValue(Key), results.Add);
              pipeline.QueueCommand(r =&gt; r.IncrementValue(Key), results.Add);
              //Can I assume that when Flush() finishes, 
              //all 3 callbacks (results.Add) would have finished?
              pipeline.Flush();
          }
  
          Assert.That(Redis.GetValue(Key), Is.EqualTo("3"));
          Assert.That(results, Is.EquivalentTo(new List&lt;long&gt; { 1, 2, 3 }));
      }
  </code></pre>