1

我应该在 redis 多事务的每个步骤中检查错误吗?如果发生一些错误,是否意味着发布命令也会返回错误?

例如。我可以吗 :

 conn.Do("multi")
 conn.Do("set", "mm", "xx")
 reply, err := conn.Do("exec")
 if err != nil {
      ....
  }

或者,我应该:

  _, err := conn.Do("multi")
 if err != nil {
     ....
     return
 }
_, err := conn.Do("set", "mm", "xx")
if err != nil {
     ....
    return
 }
 reply, err := conn.Do("exec")
if err != nil {
    ....
   return
 }
4

1 回答 1

3

要进行交易,您需要Send()每个命令,并且只Do()需要 EXEC。错误检查应该Do()只做,像这样:

conn.Send("MULTI")
conn.Send("SET", "foo", "bar")
...
reply, err := conn.Do("EXEC")
if err != nil {
    ...
}
...
于 2018-07-25T08:26:02.830 回答