Redis实现分布式锁设计

本文介绍了如何使用Redis实现分布式锁,包括RetryStrategy接口定义重试策略,DefaultRetryStrategy实现默认策略,以及RedisLock和SimpleRedisLock类实现加锁和释放锁。加锁流程中,利用LockCode函数式接口承载业务代码,循环加锁并根据重试策略决定是否继续尝试。总结强调了代码结构设计的重要性。
摘要由CSDN通过智能技术生成

一、实现相关类

 

RetryStrategy:重试策略接口,含是否重试及重试次数;获取重试时间间隔两个接口。

DefaultRetryStrategy:默认重试策略,设置默认重试次数3次,重试间隔100ms。

RedisLock:加锁及释放锁,实质即操作redis set key 和del key;

SimpleRedisLock:调用redisLock加锁,加锁后执行lockCode代码(加锁后需执行的代码逻辑),并在加锁失败后判断是否有重试逻辑。

二、加锁流程

设计巧妙之处:

1、采用LockCode函数式接口承载加锁后需执行的业务代码逻辑,作为入参传入excute方法

2、excute中,采用循环加锁成功后执行lockCode.run完毕后,return;加锁失败判断是否传入重试策略,具体通过当前线程sleep重试策略中重试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值