Redis事务是什么

今天就跟大家聊聊有关redis中的事务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联主要从事网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务邕宁,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

一、什么是redis事务?

Redis事务是可以一次性执行多条命令,本质上是一组命令的集合,一个事务中的所有命令都会序列化,然后按顺序地串行化执行,而不会被插入其他命令。

redis提供了简单的“事务”能力,multi,exec,discard,watch/unwatch指令用来操作事务。

二、Redis 事务可以做什么?

一个队列中,一些性,顺序性,排他性的执行一系列的命令

三、怎么使用 redis 命令?

1、事务相关的命令:

(1)DISCARD:取消事务,放弃执行事务块中的所有命令

(2)EXEC:执行事务块中的命令

(3)MULTI:标记一个事务的开始

(4)UNWATCH:取消WATCH命令对所有 key 的监视

(5)WATCH key [key...]:监视一个(或多个)key,如果在事务之前执行这个(或者这些)key被其他命令所改动,那么事务将会被打断。

2、事务报错问题:

(1)语句错误:会直接在添加队列的时候报错,如果出现这个错误,则整个事务都会回滚

(2)逻辑错误:例如给一个字符串 + 1,在执行的时候才会报错。这种错误则不会影响事务中的其他操作,只有本条会报错

3、watch 监控:

(1)悲观锁

悲观锁(Pessimistic Lock)们就是一个很悲观的锁,每次去拿数据的时候会认为其它人会根据修改操作,导致覆盖等问题。所以每次在拿数据的时候都会上锁,这样如果别人想要拿数据,就会 block ,一直到修改完之后,解开锁菜可以使用,传统的关系醒数据库里边就用了很多这种锁的机制,比如行锁,表锁,读锁,写锁,这都是在做操作之前,先对表上锁。

悲观锁保证数据安全,但是会使性能下降


(2)乐观锁:

乐观锁(Optimistic Lock),是一个乐观的锁,每次去拿数的时候都认为别人不会对数据进行修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用“版本号”等机制,乐观所使用于多读的应用类型,这样可以提高吞吐量。

乐观所策略:提交版本必须大于当前记录的版本,才可以进行更新

四、三特性

1、单独的隔离操作:

事务中的所有命令都会序列化、按顺序执行。事务执行过程中,不会被其他客户端发送来的命令请求打断。

2、没有隔离级别的概念:

队列中的命令没有提交之前不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在“事务内的查询要看到是物理的更新,在事务外查询不能看到这个问题了”

3、不保证原子性:

redis 同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。

(除非加入队列的时候就出错,即类似 java 的编译时异常和执行时一异常,编译时会导致回滚,执行时异常不回滚)

看完上述内容,你们对Redis的事务有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享名称:Redis事务是什么
标题网址:http://bzwzjz.com/article/jgdoie.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 重庆企业网站建设 成都营销网站建设 专业网站设计 自适应网站建设 成都企业网站建设公司 响应式网站设计 企业手机网站建设 成都网站设计 网站建设公司 四川成都网站建设 手机网站制作设计 成都网站建设公司 四川成都网站制作 定制级高端网站建设 成都网站设计 营销型网站建设 宜宾网站设计 手机网站建设 成都网站建设 重庆外贸网站建设 重庆网站制作 专业网站建设