【发布时间】:2020-09-19 14:54:14
【问题描述】:
我正在尝试使用 Redis INCR 并将增量值用作 C# 中使用 StackExchange.Redis 的哈希中的字段。 这question 点与我需要的类似,但在 Node 中。
下面是我需要的东西。
ITransaction transation = m_connection.GetDatabase()
.CreateTransaction();
Task<long> incrementTask = transation.StringIncrementAsync(sequenceNumberRedisKey);
if (await transation.ExecuteAsync())
{
long sequenceNumber = await incrementTask;
await transation.HashSetAsync(responseRedisKey, sequenceNumber, response);
}
注意sequenceNumber是我打算在事务中进行的第一个操作的结果。
代码似乎在我执行任何操作之前就执行并提交了事务。
- 这是在一个事务中执行多个操作的方式吗?
- 我可以在操作 2 (HashSetAsync) 中使用操作 1 (StringIncrementAsync) 的结果吗?
- 如果 HashSetAsync 返回 false,如何回滚序列号增量?
- 为什么没有显式提交?
【问题讨论】:
标签: c# redis stackexchange.redis