Redis事务是如何实现的?
Redis事务功能是通过MULTI、EXEC、DISCARD和WATCH 四个命令实现的。
-
1)MULTI:用于开启一个事务,它总是返回OK。 MULTI执行之后,客户端可以继续向服务器发送任意多条命令,这些命令会被放到队列中;
-
2)EXEC:当EXEC命令被调用时,队列中的命令才会被执行;按命令执行的先后顺序排列。 当操作被打断时,返回空值。
-
3)DISCARD:调用DISCARD,客户端可以清空事务队列,并放弃执行事务, 客户端会从事务状态中退出。
-
4)WATCH:可以为 Redis 事务提供 CAS乐观锁。 可以监控一个或多个键,一旦其中有一个键被修改,之后的事务就不会执行,监控一直持续到EXEC命令。
-
注:Redis的discard只是结束本次事务,正确命令造成的影响仍然存在.