您的位置:首页 > 财经 > 金融 > 成都装修公司一览表_卖网店哪个平台可靠_百度的人工客服_yahoo搜索

成都装修公司一览表_卖网店哪个平台可靠_百度的人工客服_yahoo搜索

2025/4/3 10:37:38 来源:https://blog.csdn.net/m0_74815183/article/details/146912532  浏览:    关键词:成都装修公司一览表_卖网店哪个平台可靠_百度的人工客服_yahoo搜索
成都装修公司一览表_卖网店哪个平台可靠_百度的人工客服_yahoo搜索

目录

一、引言

二、介绍

三、使用场景

四、如何使用

1.基本命令

2.Watch命令

五、总结


一、引言

  在redis中也是存在事务的,对于某些事务操作的提交,本篇文章就redis的事务进行简单介绍!

二、介绍

Redis的事务比MySQL的事务要简单许多。

原子性:Redis的事务有没有原子性存在争议,Redis是存在这种机制的,能够实现要么全都执行,要么全都不执行,但是Redis无法保证事务全都执行成功

一致性:Redis不具备一致性,没有回滚机制,事务执行过程中如果某个修改操作出现失败,就可能引起不一致的情况。

持久性:不具备持久性,Redis本身是一个内存数据库,数据是存储在内存中的,虽然Redis也有持久化机制(与事务没有什么关系),但是还是以内存为主。

隔离性:不涉及隔离性,Redis是一个单线程模型的服务器,所有的请求/事务,都是“串行”执行的。

三、使用场景

主要的意义是打包,避免其他客户端的命令插队到redis的中间

redis实现事务,是引入了一个队列,开启事务就会将命令发给服务器并放入这个队列中(并不会立即执行),遇到执行事务的命令之后才会按顺序进行执行。

四、如何使用

1.基本命令

开启事务:MULTI

执行事务:EXEC

放弃当前事务:DISCARD

2.Watch命令

用于监控某个key是否在事务执行之前,发生了改变。使用了之后,key就是事务外部更改的值

(watch必须搭配事务使用,并且必须在multi之前使用)

watch是如何实现的呢?

本质上是对exec增加了一个判定条件

类似于一个“乐观锁”,自认为产生锁冲突的概率比较低。

执行watch key的时候会给这个key安排一个“版本号”,只要其他客户端对这个key进行了修改,就会使版本号变大,当事务执行的时候(exec)判定当前的版本号和最初watch的时候记录的版本号是否一致?

如果一致,才会执行事务

如果不一致,说明key被其他客户端修改过了,因此此处就直接丢弃事务中的操作,exec返回nil

五、总结

redis的事务没有MySQL那么复杂,重点掌握watch方法的使用,下一篇文章将继续介绍redis的主从复制,感谢观看!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com