/// <summary> /// ServiceStack.Redis /// Redis 有事务,但是没有回滚的操作;如果在事务过程中,有地方改了监控key的值,则整个事务会提交失败; /// </summary> public static void TransationDemo() { bool flag = false; using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379)) { redisClient.Set("a", "1"); redisClient.Set("b", "1"); redisClient.Set("c", "1"); redisClient.Watch("a", "b", "c");//要把这些key放入到监控中 using (var trans = redisClient.CreateTransaction()) { trans.QueueCommand(p => p.Set("a", "3"));//在这可以加个断点,然后用工具去改a的值为2 trans.QueueCommand(p => p.Set("b", "3")); trans.QueueCommand(p => p.Set("c", "3")); flag = trans.Commit(); } Console.WriteLine($"提交结果:{flag},获取值a:{redisClient.Get<string>("a")},b:{redisClient.Get<string>("b")},c:{redisClient.Get<string>("c")}"); } }