首页 > 其他分享 >事务和锁机制

事务和锁机制

时间:2023-09-23 13:22:24浏览次数:36  
标签:事务 Redis 命令 MySQL 机制 执行

事务和锁机制

事务

和MySQL一样,在Redis中也有事务机制,当我们需要保证多条命令一次性完整执行而中途不受到其他命令干扰时,就可以使用事务机制。

我们可以使用命令来直接开启事务:

multi

当我们输入完所有要执行的命令时,可以使用命令来立即执行事务:

exec

我们也可以中途取消事务:

discard

实际上整个事务是创建了一个命令队列,它不像MySQL那种在事务中也能单独得到结果,而是我们提前将所有的命令装在队列中,但是并不会执行,而是等我们提交事务的时候再统一执行。

又提到锁了,实际上这个概念对我们来说已经不算是陌生了。实际上在Redis中也会出现多个命令同时竞争同一个数据的情况,比如现在有两条命令同时执行,他们都要去修改a的值,那么这个时候就只能动用锁机制来保证同一时间只能有一个命令操作。

虽然Redis中也有锁机制,但是它是一种乐观锁,不同于MySQL,我们在MySQL中认识的锁是悲观锁,那么什么是乐观锁什么是悲观锁呢?

  • 悲观锁:时刻认为别人会来抢占资源,禁止一切外来访问,直到释放锁,具有强烈的排他性质。
  • 乐观锁:并不认为会有人来抢占资源,所以会直接对数据进行操作,在操作时再去验证是否有其他人抢占资源。

Redis中可以使用watch来监视一个目标,如果执行事务之前被监视目标发生了修改,则取消本次事务:

watch

我们可以开两个客户端进行测试。

取消监视可以使用:

unwatch

至此,Redis的基础内容就讲解完毕了,在之后的SpringCloud阶段,我们还会去讲解集群相关的知识,包括主从复制、哨兵模式等。

标签:事务,Redis,命令,MySQL,机制,执行
From: https://www.cnblogs.com/liuzonglin/p/17724264.html

相关文章

  • ClickHouse的数据持久化与恢复机制
    简介ClickHouse是一个高性能的列式数据库,它的数据持久化和恢复机制是其重要的特性之一。本文将深入探讨ClickHouse的数据持久化与恢复机制。数据持久化ClickHouse的数据持久化是通过将数据写入磁盘来实现的。ClickHouse使用了一种称为MergeTree的存储引擎,它将数据按照时间戳分成......
  • Windows 消息机制
    目录Windows和消息消息和消息队列Windows消息类型Windows系统的整个消息系统分为3个层级Q&AWinForm程序中消息处理的相关方法其他代码片段相关参考Windows和消息消息和消息队列名称说明消息和消息队列本部分介绍消息和消息队列,以及如何在应用程序中使用它们。......
  • 同一个类调方法导致注解式事务失效的问题
    说明在项目启动时,如果有@Transactional注解,spring是生成代理类来开启事务、提交事务和回滚事务的,但是如果是同一个类之间调用,就是直接调方法,导致事务失效。我们可以用一下方式在同一类获取当前类的代理对象,从而避免事务失效的问题。但是这种方式会有问题,下面有说明。推荐调用拆到......
  • 支付宝一面:多线程事务怎么回滚?说用 @Transactional 可以回去等通知了!
    背景介绍1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。2,在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行......
  • redisde持久化机制
    他的持久化机制有两种一种是(rdb)快照一种是(aof)日志快照的话是全量的一个备份日志是连续的增加备份.快照机制是redis默认开启de,她会根据配置的策略将内存的数据保存在本地的二进制文件中官方提供两种方式生成快照一种是save命令但是有缺点会阻塞我们的主进程当如果数......
  • 从Android事件分发机制看滑动冲突解决方案
    事件分发机制从ViewGroup的dispatchTouchEvent入手publicbooleandispatchTouchEvent(MotionEventev){...finalbooleanintercepted;if(actionMasked==MotionEvent.ACTION_DOWN||mFirstTouchTarget!=null){fi......
  • MySQL索引、事务与存储引擎
    MySQL索引、事务与存储引擎索引介绍1、索引的概念索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的......
  • Redis持久化机制
    Redis的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证Redis的数据不会因为故障而丢失,这种机制就是Redis的持久化机制。Redis的持久化机制有两种,第一种是RDB快照,第二种是AOF日志。快照是一次全量备份,AOF日志是连续的增量备份。快照是内存数据的......
  • Mysql中的事务
    1.事务的概念事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。事......
  • 深入探讨Kafka消息时间戳与事件处理机制
    背景Kafka是一个高性能、分布式的消息队列系统,被广泛应用于大数据领域。在Kafka中,每个消息都有一个时间戳,用于表示消息的产生时间。在实际应用中,我们需要对消息进行处理,并根据时间戳进行相关的业务逻辑处理。本文将深入探讨Kafka消息时间戳与事件处理机制。Kafka消息时间戳在Kaf......