using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using StackExchange.Redis; namespace RedisStuy { /// /// 字符串操作学习 /// http://www.redis.cn /// http://www.redis.net.cn/order/ /// public class RedisTransactionStudy { #region 初始化 private IDatabase redisDatabase; public RedisTransactionStudy() { redisDatabase = RedisHelper.GetRedisDatabase(); } #endregion /// /// 允许创建一组操作,这些操作将作为单个单元发送给服务器,但可能会或可能不会在服务器上连续处理 /// public void Batch() { IBatch batch= redisDatabase.CreateBatch(null); batch.KeyExistsAsync("sdfasfasdfasdf"); batch.KeyDeleteAsync("sdfasdfsfdafasdfasdfasdfasdf"); batch.Execute(); } public void TestPipeLine() { var batch = redisDatabase.CreateBatch(); Task t1 = batch.StringSetAsync("name", "bob"); Task t2 = batch.StringSetAsync("age", 100); batch.Execute(); Task.WaitAll(t1, t2); } public void TestTran() { IDatabase db = redisDatabase; string name = db.StringGet("name"); string age = db.StringGet("age"); var tran = db.CreateTransaction(); tran.AddCondition(Condition.StringEqual("name", name)); Console.WriteLine("tran begin"); tran.StringSetAsync("name", "leap"); tran.StringSetAsync("age", 12); Thread.Sleep(4000); bool result = tran.Execute(); } } }