Beispiel #1
0
        public void Parallel_PoolClient_Test()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfiguration()
            {
                Host       = ip,
                Port       = port,
                MaxClients = 100
            });

            Parallel.For(0, 1000, new ParallelOptions()
            {
                MaxDegreeOfParallelism = 100
            }, (index, item) =>
            {
                using (var client = prc.GetClient())
                {
                    Thread.Sleep(100);
                    client.Set("Parallel_PoolClient_Test" + index, "Parallel_PoolClient_Test");

                    var info2 = client.Get("Parallel_PoolClient_Test" + index);

                    Assert.AreEqual(info2.ToString(), "Parallel_PoolClient_Test");
                }
            });
            prc.Dispose();
        }
        public void SetTest()
        {
            using (var mock = new FakeRedisSocket("+OK\r\n", "+OK\r\n", "+OK\r\n", "+OK\r\n", "$-1\r\n", "$-1\r\n", "$-1\r\n"))
                using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
                {
                    Assert.Equal("OK", redis.Set("key", "value"));
                    Assert.Equal("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n", mock.GetMessage());

                    Assert.Equal("OK", redis.Set("key", "value", expirationSeconds: 1));
                    Assert.Equal("*5\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nEX\r\n$1\r\n1\r\n", mock.GetMessage());

                    Assert.Equal("OK", redis.Set("key", "value", expirationSeconds: 1, condition: RedisExistence.Nx));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nEX\r\n$1\r\n1\r\n$2\r\nNX\r\n", mock.GetMessage());

                    Assert.Equal("OK", redis.Set("key", "value", expirationSeconds: 1, condition: RedisExistence.Xx));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nEX\r\n$1\r\n1\r\n$2\r\nXX\r\n", mock.GetMessage());

                    Assert.Null(redis.Set("key", "value", expirationMilliseconds: 1));
                    Assert.Equal("*5\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nPX\r\n$1\r\n1\r\n", mock.GetMessage());

                    Assert.Null(redis.Set("key", "value", expirationMilliseconds: 1, condition: RedisExistence.Nx));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nPX\r\n$1\r\n1\r\n$2\r\nNX\r\n", mock.GetMessage());

                    Assert.Null(redis.Set("key", "value", expirationMilliseconds: 1, condition: RedisExistence.Xx));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nPX\r\n$1\r\n1\r\n$2\r\nXX\r\n", mock.GetMessage());
                }
        }
Beispiel #3
0
        public void Thread_PoolClient_Test()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfiguration()
            {
                Host = ip,
                Port = port
            });

            Parallel.For(0, 1000, new ParallelOptions()
            {
                MaxDegreeOfParallelism = 100
            }, (index, item) =>
            {
                var t = new Thread(() =>
                {
                    Thread.Sleep(1000);
                    object info2;
                    using (var client = prc.GetClient())
                    {
                        client.Set("Parallel_PoolClient_Test" + index, "Parallel_PoolClient_Test");

                        Thread.Sleep(15000);

                        info2 = client.Get("Parallel_PoolClient_Test" + index);
                    }
                    Assert.AreEqual(info2.ToString(), "Parallel_PoolClient_Test");
                });
                t.Start();
            });
            Thread.Sleep(20000);
            prc.Dispose();
        }
Beispiel #4
0
        public void Pool_Send_Get_TimeOut()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host           = ip,
                Port           = port,
                MaxClients     = 2,
                MinClients     = 1,
                SendTimeout    = 5,
                ReceiveTimeout = 5
            });
            var par = Parallel.For(0, 1000, new ParallelOptions()
            {
                MaxDegreeOfParallelism = 100
            }, (index, item) =>
            {
                prc.Set("Parallel_PoolClient_Test" + index, "Parallel_PoolClient_Test");

                var info2 = prc.Get("Parallel_PoolClient_Test" + index);

                Assert.AreEqual(info2.ToString(), "Parallel_PoolClient_Test");
            });

            Thread.Sleep(5000);
            prc.Dispose();
        }
 public void TestHIncrByFloat()
 {
     using (var mock = new FakeRedisSocket("$4\r\n3.14\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(3.14, redis.HIncrByFloat("test", "field", 1.14));
             Assert.Equal("*4\r\n$12\r\nHINCRBYFLOAT\r\n$4\r\ntest\r\n$5\r\nfield\r\n$4\r\n1.14\r\n", mock.GetMessage());
         }
 }
 public void TestHIncrBy()
 {
     using (var mock = new FakeRedisSocket(":5\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(5, redis.HIncrBy("test", "field", 1));
             Assert.Equal("*4\r\n$7\r\nHINCRBY\r\n$4\r\ntest\r\n$5\r\nfield\r\n$1\r\n1\r\n", mock.GetMessage());
         }
 }
 public void TestHGet()
 {
     using (var mock = new FakeRedisSocket("$4\r\ntest\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("test", redis.HGet("test", "field"));
             Assert.Equal("*3\r\n$4\r\nHGET\r\n$4\r\ntest\r\n$5\r\nfield\r\n", mock.GetMessage());
         }
 }
 public void TestHExists()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.HExists("test", "field"));
             Assert.Equal("*3\r\n$7\r\nHEXISTS\r\n$4\r\ntest\r\n$5\r\nfield\r\n", mock.GetMessage());
         }
 }
 public void TestHSetNX()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.HSetNx("test", "field1", "test1"));
             Assert.Equal("*4\r\n$6\r\nHSETNX\r\n$4\r\ntest\r\n$6\r\nfield1\r\n$5\r\ntest1\r\n", mock.GetMessage());
         }
 }
 public void TestHLen()
 {
     using (var mock = new FakeRedisSocket(":5\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(5, redis.HLen("test"));
             Assert.Equal("*2\r\n$4\r\nHLEN\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #11
0
 public void TestSIsMember()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.SIsMember("test", "test1"));
             Assert.Equal("*3\r\n$9\r\nSISMEMBER\r\n$4\r\ntest\r\n$5\r\ntest1\r\n", mock.GetMessage());
         }
 }
Beispiel #12
0
 public void TestMove()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.Move("test", 5));
             Assert.Equal("*3\r\n$4\r\nMOVE\r\n$4\r\ntest\r\n$1\r\n5\r\n", mock.GetMessage());
         }
 }
 public void GetTest()
 {
     using (var mock = new FakeRedisSocket("$5\r\nhello\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("hello", redis.Get("key"));
             Assert.Equal("*2\r\n$3\r\nGET\r\n$3\r\nkey\r\n", mock.GetMessage());
         }
 }
 public void TestRPushX()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(3, redis.RPushX("test", "test1"));
             Assert.Equal("*3\r\n$6\r\nRPUSHX\r\n$4\r\ntest\r\n$5\r\ntest1\r\n", mock.GetMessage());
         }
 }
Beispiel #15
0
 public void TestDump()
 {
     using (var mock = new FakeRedisSocket("$4\r\ntest\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("test", Encoding.ASCII.GetString(redis.Dump("test")));
             Assert.Equal("*2\r\n$4\r\nDUMP\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #16
0
 public void TestObject()
 {
     using (var mock = new FakeRedisSocket(":9999\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(9999, redis.ObjectIdleTime("test2"));
             Assert.Equal("*3\r\n$6\r\nOBJECT\r\n$8\r\nIDLETIME\r\n$5\r\ntest2\r\n", mock.GetMessage());
         }
 }
Beispiel #17
0
 public void TestRestore()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("OK", redis.Restore("test", 123, "abc"));
             Assert.Equal("*4\r\n$7\r\nRESTORE\r\n$4\r\ntest\r\n$3\r\n123\r\n$3\r\nabc\r\n", mock.GetMessage());
         }
 }
Beispiel #18
0
 public void TestTtl()
 {
     using (var mock = new FakeRedisSocket(":123\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(123, redis.Ttl("test"));
             Assert.Equal("*2\r\n$3\r\nTTL\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #19
0
 public void TestRandomKey()
 {
     using (var mock = new FakeRedisSocket("$7\r\nsomekey\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("somekey", redis.RandomKey());
             Assert.Equal("*1\r\n$9\r\nRANDOMKEY\r\n", mock.GetMessage());
         }
 }
Beispiel #20
0
 public void TestRenameNx()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.RenameNx("test1", "test2"));
             Assert.Equal("*3\r\n$8\r\nRENAMENX\r\n$5\r\ntest1\r\n$5\r\ntest2\r\n", mock.GetMessage());
         }
 }
Beispiel #21
0
 public void TestSRem()
 {
     using (var mock = new FakeRedisSocket(":2\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(2, redis.SRem("test", "test1", "test2"));
             Assert.Equal("*4\r\n$4\r\nSREM\r\n$4\r\ntest\r\n$5\r\ntest1\r\n$5\r\ntest2\r\n", mock.GetMessage());
         }
 }
Beispiel #22
0
 public void TestSPop()
 {
     using (var mock = new FakeRedisSocket("$5\r\ntest1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("test1", redis.SPop("test"));
             Assert.Equal("*2\r\n$4\r\nSPOP\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #23
0
 public void TestSMove()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.SMove("test", "destination", "test1"));
             Assert.Equal("*4\r\n$5\r\nSMOVE\r\n$4\r\ntest\r\n$11\r\ndestination\r\n$5\r\ntest1\r\n", mock.GetMessage());
         }
 }
 public void TestLIndex()
 {
     using (var mock = new FakeRedisSocket("$5\r\ntest1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("test1", redis.LIndex("test", 0));
             Assert.Equal("*3\r\n$6\r\nLINDEX\r\n$4\r\ntest\r\n$1\r\n0\r\n", mock.GetMessage());
         }
 }
 public void TestLTrim()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("OK", redis.LTrim("test", 0, 3));
             Assert.Equal("*4\r\n$5\r\nLTRIM\r\n$4\r\ntest\r\n$1\r\n0\r\n$1\r\n3\r\n", mock.GetMessage());
         }
 }
 public void TestRPopLPush()
 {
     using (var mock = new FakeRedisSocket("$5\r\ntest1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal("test1", redis.RPopLPush("test", "new"));
             Assert.Equal("*3\r\n$9\r\nRPOPLPUSH\r\n$4\r\ntest\r\n$3\r\nnew\r\n", mock.GetMessage());
         }
 }
 public void GetBitTest()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.True(redis.GetBit("key", 10));
             Assert.Equal("*3\r\n$6\r\nGETBIT\r\n$3\r\nkey\r\n$2\r\n10\r\n", mock.GetMessage());
         }
 }
 public void DecrByTest()
 {
     using (var mock = new FakeRedisSocket(":10\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(10, redis.DecrBy("key", 5));
             Assert.Equal("*3\r\n$6\r\nDECRBY\r\n$3\r\nkey\r\n$1\r\n5\r\n", mock.GetMessage());
         }
 }
Beispiel #29
0
 public void TestSCard()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(3, redis.SCard("test"));
             Assert.Equal("*2\r\n$5\r\nSCARD\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #30
0
 public void TestSInterStore()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
         using (var redis = new PoolRedisClient(mock, new DnsEndPoint("fakehost", 9999)))
         {
             Assert.Equal(3, redis.SInterStore("destination", "key1", "key2"));
             Assert.Equal("*4\r\n$11\r\nSINTERSTORE\r\n$11\r\ndestination\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n", mock.GetMessage());
         }
 }
Beispiel #31
0
        public void Pool_Single()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port,
                MaxClients = 100
            });

            prc.Set("GetClient_Test", "GetClient_Test");
            var info2 = prc.Get("GetClient_Test");

            Assert.AreEqual(info2.ToString(), "GetClient_Test");

            prc.Dispose();
        }
Beispiel #32
0
        public void Pool_Multi()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port,
                MaxClients = 100
            });
            var info = prc.Multi(client =>
            {
                client.Set("GetClient_Test", "GetClient_Test");
                return client.Get("GetClient_Test");
            });
            Assert.AreEqual(info.ToString(), "GetClient_Test");

            prc.Dispose();
        }
Beispiel #33
0
        public void Pool_Send_Get_TimeOut()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port,
                MaxClients = 2,
                MinClients = 1,
                SendTimeout = 5,
                ReceiveTimeout = 5
            });
            var par = Parallel.For(0, 1000, new ParallelOptions() {MaxDegreeOfParallelism = 100}, (index, item) =>
            {
                prc.Set("Parallel_PoolClient_Test" + index, "Parallel_PoolClient_Test");

                var info2 = prc.Get("Parallel_PoolClient_Test" + index);

                Assert.AreEqual(info2.ToString(), "Parallel_PoolClient_Test");
            });
            Thread.Sleep(5000);
            prc.Dispose();
        }
Beispiel #34
0
        public void Pool_Single_Parallel_MultiThread()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port
            });
            Parallel.For(0, 1000, new ParallelOptions() {MaxDegreeOfParallelism = 100}, (index, item) =>
            {
                var t = new Thread(() =>
                {
                    prc.Set("Parallel_PoolClient_Test" + index, "Parallel_PoolClient_Test");

                    object info2 = prc.Get("Parallel_PoolClient_Test" + index);

                    Assert.AreEqual(info2.ToString(), "Parallel_PoolClient_Test");
                });
                t.Start();
            });
        }
Beispiel #35
0
        public void Pool_Single_For()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port,
                MaxClients = 10
            });
            for (int i = 0; i < 100; i++)
            {
                prc.Set("GetMaxClient_Test" + i, "GetMaxClient_Test");

                var info2 = prc.Get("GetMaxClient_Test" + i);

                Assert.AreEqual(info2.ToString(), "GetMaxClient_Test");
            }
               prc.Dispose();
        }
Beispiel #36
0
        public void Pool_Single_Parallel()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port,
                MaxClients = 20,
                MinClients = 10,
            });
            Parallel.For(0, 1000, new ParallelOptions() {MaxDegreeOfParallelism = 100}, (index, item) =>
            {

                prc.Set("Parallel_PoolClient_Test" + index, "Parallel_PoolClient_Test");

                var info2 = prc.Get("Parallel_PoolClient_Test" + index);

                Assert.AreEqual(info2.ToString(), "Parallel_PoolClient_Test");
            });
            Thread.Sleep(5000);
            prc.Dispose();
        }
Beispiel #37
0
        public void Pool_Single_TimeOut()
        {
            PoolRedisClient prc = new PoolRedisClient(new PoolConfig()
            {
                Host = ip,
                Port = port,
                MaxClients = 10
            });
            prc.Set("PoolClient_TimeOut_Test", "PoolClient_TimeOut_Test");
            Thread.Sleep(15000);
            object info2 = prc.Get("PoolClient_TimeOut_Test");

            Assert.AreEqual(info2.ToString(), "PoolClient_TimeOut_Test");

            prc.Dispose();
        }