互联网常识:详细了解Redis中的事务

导读跟大家讲解下有关详细了解Redis中的事务,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说详细了解Redis中的事务,小编也
跟大家讲解下有关详细了解Redis中的事务,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说详细了解Redis中的事务,小编也收集到了有关详细了解Redis中的事务的相关资料,希望大家看到了会喜欢 。
本篇文章带大家详细了解一下Redis中的事务 。有一定的参考价值有需要的朋友可以参考一下希望对大家有所帮助 。

互联网常识:详细了解Redis中的事务

文章插图

相关命令命令格式作用返回结果WATCHWATCH key [key ...]将给出的 Keys标记为 监测态作为事务执行的条件always OK.UNWATCHUNWATCH清除事务中 Keys监测态如果调用了EXEC or DISCARD则没有必要再手动调用UNWATCHalways OK.MULTIMULTI 显式开启 redis事务后续 commands将排队等候使用EXEC进行原子执行always OK.EXECEXEC执行事务中的 commands队列恢复连接状态 。如果WATCH在之前被调用只有 监测中的 Keys没有被修改命令才会被执行否则停止执行(详见下文 CAS机制)成功: 返回数组 —— 每个元素对应着原子事务中一个 command的返回结果;失败: 返回 NULLRuby返回 `nil`);DISCARDDISCARD清除事务中的 commands队列恢复连接状态 。如果WATCH在之前被调用 释放 监测中的 Keysalways OK.

------MULTI,EXEC,DISCARD才是显式开启并控制事务的常用命令可类比关系型数据库中的BEGAIN,COMMIT,ROLLBACK(事实上差距很大);
------WATCH命令的使用是为了解决事务并发产生的不可重复读幻读的问题(简单理解为给Key加锁);
Redis事务 MULTI, EXEC, DISCARD and WATCH 是Redis事务的基础 。用来显式开启并控制一个事务它们允许在一个步骤中执行一组命令 。并提供两个重要的保证:
事务中的所有命令都会被序列化并按顺序执行 。在执行Redis事务的过程中不会出现由另一个客户端发出的请求 。这保证 命令队列作为一个单独的原子操作被执行 。队列中的命令要么全部被处理要么全部被忽略 。EXEC命令触发事务中所有命令的执行因此当客户端在事务上下文中失去与服务器的连接如果发生在调用MULTI命令之前则不执行任何 commands;如果在此之前EXEC命令被调用则所有的 commands都被执行 。同时redis使用AOF(append-only file)使用一个额外的write操作将事务写入磁盘 。如果发生宕机进程奔溃等情况可以使用redis-check-aof tool 修复append-only file使服务正常启动并恢复部分操作 。
用法 使用MULTI命令显式开启Redis事务 。该命令总是以OK回应 。此时用户可以发出多个命令Redis不会执行这些命令而是将它们排队EXEC被调用后所有的命令都会被执行 。而调用DISCARD可以清除事务中的commands队列退出事务
以下示例以原子方式递增键foo和bar 。>MULTIOK>INCR fooQUEUED>INCR barQUEUED>EXEC1)(整数)12)(整数)1 从上面的命令执行中可以看出


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: