美文网首页
Redis的事务

Redis的事务

作者: 不ji的石头 | 来源:发表于2021-11-13 23:37 被阅读0次

    数据库一般都具有ACID这4个特性:

    • A:Atomic,原子性,将事务开启到事务结束之间的操作,要么全部执行,要么全部不执行。
    • C:Consistent,一致性,事务完成后,数据是和谐一致的。
    • I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;
    • D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储。

    redis的事务主要有MULTI ,EXEC,DISCARD,WATCH这四个命令

    redis事务步骤如下:

    • 事务开始 :

    MULTI命令的执行,标识着⼀个事务的开始。

    • 命令入队:

    当redis开启事务之后,redis服务器会根据客户端发送来的命令来执行不同的操作。如果发送的命令为MULTI、EXEC、WATCH、DISCARD中的⼀个,立即执行这个命令。

    如果是其他命令,⾸先检查此命令的语法是否正确,如果不正确,服务器会在客户端状态的 flags 属性关闭REDIS_MULTI 标识,并且返回错误信息给客户端(事务最后也会执行不成功,但是还不会退出当前事务)。 如果正确,将这个命令放入⼀个事务队列(FIFO)里面,然后向客户端返回 QUEUED。

    • 事务执行:

    EXEC命令。如果客户端状态的 flags 属性不包含 REDIS_MULTI 标识或者包含 REDIS_DIRTY_CAS 或者包含REDIS_DIRTY_EXEC 标识,那么就取消事务的执行。 否则客户端处于事务状态(flags 有 REDIS_MULTI 标识),服务器按顺序执行事务队列中的所有命令,最后将返回结果全部返回给客户端。如果有个别执行失败,一般也不会影响其他命令。即redis 不支持事务回滚机制,但是它会检查每⼀个事务中的命令是否错误。

    • 事务终止

    DISCARD,客户端清空事务队列,并且从事务状态中退出。

    取消监控

    UNWATCH,可以取消watch对所有key的监控。

    相关文章

      网友评论

          本文标题:Redis的事务

          本文链接:https://www.haomeiwen.com/subject/yflttrtx.html