Example #1
0
        public void StackExchangeRedisKeyValueStore_Hash_Exceptions()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            Assert.ThrowsException <ArgumentException>(() =>
            {
                store.Set(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, byte[], object> >
                {
                    Tuple.Create <string, byte[], object>("testKey2_1", BinarySerializerHelper.SerializeObject(1), new StackExchangeRedisHashParams {
                        HashField = "testKey2_1_1"
                    }),
                    Tuple.Create <string, byte[], object>("testKey2_2", BinarySerializerHelper.SerializeObject(2), new StackExchangeRedisHashParams {
                        HashField = "testKey2_1_2"
                    })
                });
            });

            Assert.ThrowsException <ArgumentException>(() =>
            {
                store.Get(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, object> >
                {
                    Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                        HashField = "testKey2_1_1"
                    }),
                    Tuple.Create <string, object>("testKey2_2", new StackExchangeRedisHashParams {
                        HashField = "testKey2_1_2"
                    })
                });
            });
        }
Example #2
0
        public void ForksManager_KeyDeleteTest()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.FlushKeys("KVSF*");
            var manager = new ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum>(store);

            manager.CreateApp(3, "ForkDeleteTest", string.Empty);

            var forkId = manager.CreateFork("test1", "some test fork", 1);

            var wrapper = manager.GetWrapper(forkId);

            wrapper.StringSet(new List <KeyValuePair <string, int> > {
                new KeyValuePair <string, int>("testKey1", 1),
                new KeyValuePair <string, int>("testKey2", 2)
            }.ToArray());

            forkId  = manager.CreateFork("test2", "some test fork", 2);
            wrapper = manager.GetWrapper(forkId);
            wrapper.StringSet("testKey3", 3);
            wrapper.StringSet("testKey2", 4);

            wrapper.KeyDelete(new string[] { "testKey2", "testKey3" });

            var res = wrapper.StringGet <int>(new string[] { "testKey1", "testKey2", "testKey3" });

            Assert.AreEqual(1, res["testKey1"]);
            Assert.AreEqual(1, res.Count);
        }
Example #3
0
        public void ForksManager_PruneTest()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.FlushKeys("KVSF*");

            var manager = new ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum>(store);

            manager.CreateApp(3, "test", "some test app");

            var wrapper = manager.GetWrapper(1);

            wrapper.StringSet("1", 1);

            var forkId = manager.CreateFork("test2", "some test fork", 1);

            wrapper = manager.GetWrapper(forkId);
            wrapper.StringSet("2", 2);
            wrapper.StringSet("3", 3);
            wrapper.StringSet("4", 4);

            forkId  = manager.CreateFork("test2", "some test fork", 2);
            wrapper = manager.GetWrapper(forkId);

            wrapper.KeyDelete("2");
            wrapper.StringSet("3", 4);
            wrapper.StringSet("5", 5);

            var forkId2 = manager.CreateFork("test2", "some test fork", 2);

            wrapper = manager.GetWrapper(forkId2);

            wrapper.KeyDelete("3");
            wrapper.StringSet("2", 2);
            wrapper.StringSet("6", 6);
            wrapper.StringSet("5", 4);

            var newForkId = manager.PruneForks(forkId2);

            wrapper = manager.GetWrapper(newForkId);

            var values = wrapper.StringGet <int>(new string[] { "1", "2", "3", "4", "5", "6" });

            Assert.AreEqual(5, values.Count);
            Assert.AreEqual(1, values["1"]);
            Assert.AreEqual(2, values["2"]);
            Assert.AreEqual(4, values["4"]);
            Assert.AreEqual(4, values["5"]);
            Assert.AreEqual(6, values["6"]);
        }
        static void Main(string[] args)
        {
            var store   = new StackExchangeRedisKeyValueStore(ConfigurationManager.AppSettings["KeyValueConnectionString"]);
            var manager = new ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum>(store);

            while (true)
            {
                if (!AppId.HasValue)
                {
                    ManageApp(manager);
                }

                ManageForks(manager);
            }
        }
Example #5
0
        public void StackExchangeRedisKeyValueStore_String()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.Set(StackExchangeRedisDataTypesEnum.String, "testKey1", BinarySerializerHelper.SerializeObject(123));
            var res = (int)BinarySerializerHelper.DeserializeObject(store.Get(StackExchangeRedisDataTypesEnum.String, "testKey1"));

            Assert.AreEqual(123, res);

            store.Set(StackExchangeRedisDataTypesEnum.String, new List <Tuple <string, byte[], object> >
            {
                Tuple.Create <string, byte[], object>("testKey1_1", BinarySerializerHelper.SerializeObject(1), null),
                Tuple.Create <string, byte[], object>("testKey1_2", BinarySerializerHelper.SerializeObject(2), null),
                Tuple.Create <string, byte[], object>("testKey1_3", BinarySerializerHelper.SerializeObject(3), null)
            });

            var multipleRes = store.Get(StackExchangeRedisDataTypesEnum.String, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey1_1", null),
                Tuple.Create <string, object>("testKey1_2", null),
                Tuple.Create <string, object>("testKey1_3", null)
            });

            Assert.AreEqual(1, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey1_1"]));
            Assert.AreEqual(2, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey1_2"]));
            Assert.AreEqual(3, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey1_3"]));


            store.Delete(StackExchangeRedisDataTypesEnum.String, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey1_1", null),
                Tuple.Create <string, object>("testKey1_2", null)
            });

            multipleRes = store.Get(StackExchangeRedisDataTypesEnum.String, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey1_1", null),
                Tuple.Create <string, object>("testKey1_2", null),
                Tuple.Create <string, object>("testKey1_3", null)
            });

            Assert.AreEqual(3, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey1_3"]));
            Assert.AreEqual(1, multipleRes.Count);
        }
Example #6
0
        public void ForksWrapper_ForkDeleteTest()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.FlushKeys("KVSF*");
            var manager = new ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum>(store);

            manager.CreateApp(1, "test", "some test app");

            var masterWrapper = manager.GetWrapper(1);

            var forkId  = manager.CreateFork("test2", "some test fork", 1);
            var forkId2 = manager.CreateFork("test3", "some test fork", 1);
            var forkId3 = manager.CreateFork("test4", "some test fork", 2);

            manager.DeleteFork(forkId3);
            manager.DeleteFork(forkId2);
            manager.DeleteFork(forkId);
        }
Example #7
0
        public void ForksWrapper_GetMasterForksTest()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.FlushKeys("KVSF*");
            var manager = new ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum>(store);

            manager.CreateApp(1, "test", "some test app");

            var masterWrapper = manager.GetWrapper(1);

            var forkId  = manager.CreateFork("test2", "some test fork", 1);
            var forkId2 = manager.CreateFork("test3", "some test fork", 1);
            var forkId3 = manager.CreateFork("test4", "some test fork", forkId2);
            var forkId4 = manager.CreateFork("new master", "some test fork");

            var masterForks = manager.GetMasterForks();

            Assert.AreEqual(2, masterForks.Count);
        }
Example #8
0
        public void StackExchangeRedisKeyValueStore_Hash()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.Set(StackExchangeRedisDataTypesEnum.Hash, "testKey2", BinarySerializerHelper.SerializeObject(123), new StackExchangeRedisHashParams {
                HashField = "testKey2Hash"
            });
            var res = (int)BinarySerializerHelper.DeserializeObject(store.Get(StackExchangeRedisDataTypesEnum.Hash, "testKey2", new StackExchangeRedisHashParams {
                HashField = "testKey2Hash"
            }));

            Assert.AreEqual(123, res);

            store.Set(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, byte[], object> >
            {
                Tuple.Create <string, byte[], object>("testKey2_1", BinarySerializerHelper.SerializeObject(4), new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_1"
                }),
                Tuple.Create <string, byte[], object>("testKey2_1", BinarySerializerHelper.SerializeObject(5), new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_2"
                }),
                Tuple.Create <string, byte[], object>("testKey2_1", BinarySerializerHelper.SerializeObject(6), new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_3"
                })
            });

            var multipleRes = store.Get(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_1"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_2"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_3"
                })
            });

            Assert.AreEqual(4, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey2_1_1"]));
            Assert.AreEqual(5, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey2_1_2"]));
            Assert.AreEqual(6, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey2_1_3"]));


            store.Delete(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_2"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_3"
                })
            });
            multipleRes = store.Get(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_1"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_2"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_3"
                })
            });

            Assert.AreEqual(4, (int)BinarySerializerHelper.DeserializeObject(multipleRes["testKey2_1_1"]));
            Assert.AreEqual(1, multipleRes.Count);

            store.Delete(StackExchangeRedisDataTypesEnum.Hash, "testKey2_1", null);
            multipleRes = store.Get(StackExchangeRedisDataTypesEnum.Hash, new List <Tuple <string, object> >
            {
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_1"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_2"
                }),
                Tuple.Create <string, object>("testKey2_1", new StackExchangeRedisHashParams {
                    HashField = "testKey2_1_3"
                })
            });
            Assert.AreEqual(0, multipleRes.Count);
        }