【发布时间】:2018-01-11 00:58:59
【问题描述】:
我正在查看以下代码:
- 向 Redis 数据库添加键/值。
- 为新的 redis 键设置一个过期时间。
即
{
var batch = database.CreateBatch();
var tasks = new Task[]
{
batch.SetAddAsync(key, value, flags),
batch.KeyExpireAsync(key, expiry, flags)
};
batch.Execute();
await Task.WhenAll(tasks)
}
在单个 redis Batch 中完成所有这些操作。
我的印象是,当涉及到批处理时,你不能假设顺序,更不用说async/await 中的多个任务了。
因此,可能会出现以下顺序:
-
KeyExpiresAsync -
SetAddAsync
我希望并且不希望订单得到保证,这意味着 .. 它会尽可能快地并行处理。
那么 - 我的理解是正确的还是错误的?
【问题讨论】:
标签: c# .net redis async-await stackexchange.redis