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" }) }); }); }
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); }
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); } }
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); }
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); }
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); }
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); }