W~C停用

导航

Redis中的事务

Batch和Pipelining

Batch会把所需要执行的命令打包成一条请求发到Redis,然后一起等待返回结果。

using (var redis = ConnectionMultiplexer.Connect(redisConnectionStr))
            {
                var db = redis.GetDatabase();
                var batch = db.CreateBatch();
                Task t1 = batch.StringSetAsync("name", "bob");
                Task t2 = batch.StringSetAsync("age", 100);
                batch.Execute();
                Task.WaitAll(t1, t2);
            }

流水线(Pipelining)可以让我们同时发送多个请求,从而减轻延迟

using (var redis = ConnectionMultiplexer.Connect(redisConnectionStr))
            {
                var db = redis.GetDatabase();
                var aPending = db.StringSetAsync("a","a");
                var bPending = db.StringSetAsync("b","b");
                var a = db.Wait(aPending);
                var b = db.Wait(bPending);
                //同样可以用aPending.Wait() 或 Task.WaitAll(aPending, bPending)代替
            }

 

posted on 2021-11-26 02:02  W~C停用  阅读(36)  评论(0编辑  收藏  举报