导读跟大家讲解下有关详细了解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
的返回结果;失败: 返回 NULL
( Ruby
返回 `nil`
);DISCARDDISCARD清除事务中的 commands
队列恢复连接状态 。如果WATCH在之前被调用 释放
监测
中的 Keys
always OK. Redis事务 MULTI, EXEC, DISCARD and WATCH 是Redis事务的基础 。
------MULTI
,EXEC
,DISCARD
才是显式
开启并控制事务的常用命令可类比关系型数据库
中的BEGAIN
,COMMIT
,ROLLBACK
(事实上差距很大);
------WATCH
命令的使用是为了解决事务并发
产生的不可重复读
和幻读
的问题(简单理解为给Key加锁
);
用来显式开启并控制一个事务它们允许在一个步骤中执行一组命令
。并提供两个重要的保证:事务中的所有命令都会被序列化并按顺序执行 。在执行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小编还为您精选了以下内容,希望对您有所帮助:- 互联网常识:javascript中string方法有哪些
- 互联网常识:mysql8 phpmyadmin密码登录失败怎么办
- 荣耀Magic4系列详细参数对比 荣耀Magic4系列哪款更值得购买
- 雅姿官网查询详细价格 安利眼霜产品价格表
- 互联网常识:javascript如何设置颜色
- 荣耀x20手机参数配置详情 荣耀30参数详细参数
- 关于五的文化常识
- T3出行离职1万元押金给退吗
- 居家风水常识
- 解析互联网六大商业模式 互联网盈利模式包括哪些模式