You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Errors happening after EXEC instead are not handled in a special way: all the other commands will be executed even if some command fails during the transaction.
275
-
> It's important to note that even when a command fails, all the other commands in the queue are processed - Redis will not stop the processing of commands.
276
-
277
-
```
278
-
$ telnet 127.0.0.1 6379
279
-
set key3 a
280
-
+OK
281
-
multi
282
-
+OK
283
-
set key3 b
284
-
+QUEUED
285
-
incr key3
286
-
+QUEUED
287
-
exec
288
-
*2
289
-
+OK
290
-
-ERR value is not an integer or out of range
291
-
get key3
292
-
$1
293
-
b
294
-
```
295
-
296
-
The `SET` command was processed because the `INCR` command was queued.
297
-
298
-
```
299
-
multi
300
-
+OK
301
-
set key3 c
302
-
+QUEUED
303
-
mybad key3 d
304
-
-ERR unknown command 'mybad', with args beginning with: 'key3' 'd'
305
-
exec
306
-
-EXECABORT Transaction discarded because of previous errors.
307
-
get key3
308
-
$1
309
-
b
310
-
```
311
-
312
-
The `SET` command wasn't processed because of the error during the queueing.
> Redis does not support rollbacks of transactions since supporting rollbacks would have a significant impact on the simplicity and performance of Redis.
317
-
318
-
It's hard to validate them perfectly in advance on the client side.
319
-
It seems that Redis aims to prior simplicity and performance efficiency.
320
-
So I think it's wrong to use the transaction feature by complex ways.
321
-
To say nothing of the cluster mode because of the CAP theorem. Redis is just a key-value store.
322
-
323
270
## ACL
324
271
The cluster client internally calls [COMMAND](https://redis.io/commands/command/) and [CLUSTER NODES](https://redis.io/commands/cluster-nodes/) commands to operate correctly.
0 commit comments