京东秒杀系统模块的Redis分布式锁深度剖析,没给你讲明白你打我!

6|2Redisson


Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。

充分的利用了Redis键值数据库提供的一系列优势,基于Java实用工具包中常用接口,为使用者提供了一系列具有分布式特性的常用工具类。

使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。

同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。

首先感受一下通过Redisson Api使用redis分布式锁。

定义RedissonBuilder,通过redis集群地址构建RedissonClient。

京东秒杀系统模块的Redis分布式锁深度剖析,没给你讲明白你打我

定义RedissonClient类型的Bean。

京东秒杀系统模块的Redis分布式锁深度剖析,没给你讲明白你打我

业务代码里,通过RedissonClient获取分布式锁。

京东秒杀系统模块的Redis分布式锁深度剖析,没给你讲明白你打我

由于对Redisson分布式锁实现原理了解的也不是很透彻,这里推荐一篇文章:Redisson 分布式锁实现分析。

6|3Redisson和RedisLockRegistry对比


  • RedisLockRegistry通过本地锁(ReentrantLock)和redis锁,双重锁实现,Redission通过Netty Future机制、Semaphore (jdk信号量)、redis锁实现。

  • RedisLockRegistry和Redssion都是实现的可重入锁。

  • RedisLockRegistry对锁的刷新没有处理,Redisson通过Netty的TimerTask、Timeout 工具完成锁的定期刷新任务。

  • RedisLockRegistry仅仅是实现了分布式锁,而Redisson处理分布式锁,还提供了了队列、集合、列表等丰富的API。

7|0动手实现分布式锁

===================

7|1实现原理


本地锁(ReentrantLock)+ redis锁

7|2获取锁lua脚本


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值