美文网首页大数据开发
大数据开发:Redis事务锁适用场景

大数据开发:Redis事务锁适用场景

作者: 成都加米谷大数据 | 来源:发表于2021-07-16 18:09 被阅读0次

前面我们对Redis事务锁机制做过简单的介绍,其中提到了悲观锁和乐观锁两个概念,不同的处理策略,也代表着适用于不同的场景。今天的大数据开发学习分享,我们就来讲讲Redis事务锁不同的锁,适用于什么样的场景。

一、悲观锁

总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。

传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。

二、乐观锁

总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。

乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。

三、不同事务锁的适用场景

悲观锁:比较适合写入操作比较频繁的场景,如果出现大量的读取操作,每次读取的时候都会进行加锁,这样会增加大量的锁的开销,降低了系统的吞吐量。

乐观锁:比较适合读取操作比较频繁的场景,如果出现大量的写入操作,数据发生冲突的可能性就会增大,为了保证数据的一致性,应用层需要不断的重新获取数据,这样会增加大量的查询操作,降低了系统的吞吐量。常见应用为秒杀系统、抢红包等。

四、Redis的watch机制实现乐观锁

监视一个(或多个)key,如果在事务exec执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。

127.0.0.1:6379>set k 1

OK

#监视k1(当已经开始监控k1,则其他客户端不能修改k1的值)

127.0.0.1:6379>WATCH k

OK

#设置k1值为2

127.0.0.1:6379>set k 2

OK

#开始事务

127.0.0.1:6379>MULTI

OK

#修改k值为3

127.0.0.1:6379>set k 3

QUEUED

#提交事务,但k值不会被修改为3,因为在事务开启之前k的值被修改了

127.0.0.1:6379>EXEC

(nil)

127.0.0.1:6379>get k1

"2"

关于大数据开发学习,Redis事务锁适用场景,以上就为大家做了简单的介绍了。Redis事务锁当中,悲观锁和乐观锁各有其适用的场景,而在不同的场景下,也就需要结合到实际情况去制定方案。

相关文章

  • 大数据开发:Redis事务锁适用场景

    前面我们对Redis事务锁机制做过简单的介绍,其中提到了悲观锁和乐观锁两个概念,不同的处理策略,也代表着适用于不同...

  • 知识点整理

    redis redis为什么高效,及应用场景 锁 死锁产生条件,及避免死锁 悲观锁与乐观锁 数据库 事务 事务特性...

  • Redis事务锁CAS实现以及深入误区

    Redis中的事务 Redis的事务没有mysql那么的丰富,但在JAVA web的开发过程中利用mysql事务锁...

  • redis笔记

    redis使用项目经验 验证码 热点数据 使用场景 事务执行流程 事务注意事项 watch 分布式锁(解决超卖问题...

  • Redis Learning

    应用场景:redis 适用于小而热的数据 Redis应用场景 Redis作者谈Redis应用场景我们在应用redi...

  • 缓存穿透、雪崩、击穿解决方案

    Redis相关数据结构 Redis List适用场景为:排名、排行榜、近期访问数据列表等业务。Redis Set适...

  • Mysql大型数量下的数据库构建

    适用场景:并发量大、数据量大的互联网业务一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、...

  • SQL 规范

    适用场景:并发量大、数据量大的互联网业务 一、 基础规范 1. 推荐使用InnoDB存储引擎 支持事务、行级锁、并...

  • 数据库设计规范——58同城30条军规(转)

    军规适用场景:并发量大、数据量大的互联网业务一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、...

  • 大数据开发:Redis事务锁机制入门

    Redis作为分布式场景的重要支持组件之一,在大数据技术生态当中的地位是越来越受到重用的。Redis框架当中,一个...

网友评论

    本文标题:大数据开发:Redis事务锁适用场景

    本文链接:https://www.haomeiwen.com/subject/kvvbpltx.html