一种基于Redis缓存系统的分布式锁管理的方法及系统技术方案

技术编号:33456043 阅读:34 留言:0更新日期:2022-05-19 00:38
本申请提供了一种基于Redis缓存系统的分布式锁管理的技术方案,其方法包括:在分布式锁的管理端,接收容器基于业务方法的分布式锁请求;若请求成功,则向容器发送分布式锁,并记录该分布式锁的加锁信息至缓存队列,其中,加锁信息至少包括该分布式锁的加锁时长和执行该业务方法的容器的IP地址;基于该缓存队列中记录的该容器的IP地址,定期检查该容器的状态,并基于该容器的状态,对该容器对应的分布式锁进行处理。该方法通过定期检查获取到分布式锁执行业务方法的容器的状态来确定对分布式锁的处理,以实现对分布式锁的动态管理,确保不会破坏共享资源的数据一致性,并在此前提下提升对共享资源的访问效率。下提升对共享资源的访问效率。下提升对共享资源的访问效率。

【技术实现步骤摘要】
一种基于Redis缓存系统的分布式锁管理的方法及系统


[0001]本申请涉及数据缓存及处理
,尤其涉及一种基于Redis缓存系统的分布式锁管理的技术。

技术介绍

[0002]分布式锁是控制分布式系统之间同步访问共享资源的一种方式,可确保在高并发情况下同一个共享资源在同一时间段只能被同一个业务方法或线程执行。
[0003]基于Redis缓存系统的分布式锁是实现分布式锁的一种方式。目前在Redis缓存系统中,分布式锁被成功申请后,其加锁时长是在设置时根据对业务方法执行时长的预估设置的,设置后不可根据业务方法执行的时长进行动态调整。当容器成功获取分布式锁后开始执行业务方法,若业务方法执行的实际时长超过设置的分布式锁的加锁时长,当业务方法执行的当前时长达到分布式的加锁时长后分布式锁会被释放,但容器会继续执行该业务方法,若其它容器成功申请到分布式锁,其它容器也会执行该业务方法,造成同一时间有多个容器执行同一业务方法访问同一共享资源,会带来共享资源数据一致性问题;若业务方法执行的实际时长比加锁时长短,则会造成业务执行完毕后分布式锁却没有及时释本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Redis缓存系统的分布式锁管理的方法,其特征在于,应用于管理端,所述方法包括:接收基于业务方法的分布式锁请求;若请求成功,则发送分布式锁,并记录所述分布式锁的加锁信息至缓存队列,其中,所述加锁信息至少包括所述分布式锁的加锁时长和执行所述业务方法的容器的IP地址;基于所述缓存队列中记录的所述容器的IP地址,定期检查所述容器的状态,并基于所述容器的状态,对所述容器对应的分布式锁进行处理。2.根据权利要求1所述的方法,其特征在于,所述基于所述容器的状态,对所述容器对应的分布式锁进行处理包括:当检查到所述容器处于存活状态,则基于所述缓存队列中记录的加锁信息,确定所述容器对应的分布式锁,并判断所述分布式锁的加锁时长是否超过预设的最大加锁时长,若未超过,则将所述分布式锁的加锁时长增加预设步长时长。3.根据权利要求1所述的方法,其特征在于,所述加锁信息至少还包括:最大加锁时长和步长时长;其中,所述基于所述容器的状态,对所述容器对应的分布式锁进行处理包括:当检查到所述容器处于存活状态,则基于所述缓存队列中记录的加锁信息,确定所述容器对应的分布式锁,并判断所述分布式锁的加锁时长是否超过对应的最大加锁时长,若未超过,则将所述分布式锁的加锁时长增加对应的步长时长。4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:若所述容器对应的分布式锁的加锁时长超过所述最大加锁时长,则释放所述分布式锁,并删除所述缓存队列中对应所述分布式锁的加锁信息。5.根据权利要求1所述的方法,其特征在于,所述基于所述容器的状态,对所述容器对应的分布式锁进行处理包括:当检查到所述容器处于未存活状态,则释放所述容器对应的分布式锁,并...

【专利技术属性】
技术研发人员:张利杰
申请(专利权)人:上海万物新生环保科技集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1