У меня есть несколько вопросов об использовании транзакций из StackExchange.Redis:
- Разрешено ли выполнять команды в транзакции, которые потенциально могут быть нацелены на разные узлы в среде кластера? Скажем, ключ первой команды имеет хэштег
{1}
, а ключ второй команды имеет хэштег{2}
. - Когда транзакция
Execute()
/ExecuteAsync()
возвращаетfalse
? Только когда поставленные условия не были соблюдены? Может ли он вернутьfalse
, если не было задано никаких условий? - Если произойдет какая-то сетевая или внутренняя ошибка Redis,
Execute()
/ExecuteAsync()
выкинет или просто вернетfalse
? Должен ли я также проверять задачи команд (при условии, что команды полностью верны и обычно не должны вызывать броски) или они будут просто отменены?
К сожалению, документ не объясняет # 2 и # 3 в деталях.