【技术实现步骤摘要】
一种基于Redis缓存系统的分布式锁管理的方法及系统
[0001]本申请涉及数据缓存及处理
,尤其涉及一种基于Redis缓存系统的分布式锁管理的技术。
技术介绍
[0002]分布式锁是控制分布式系统之间同步访问共享资源的一种方式,可确保在高并发情况下同一个共享资源在同一时间段只能被同一个业务方法或线程执行。
[0003]基于Redis缓存系统的分布式锁是实现分布式锁的一种方式。目前在Redis缓存系统中,分布式锁被成功申请后,其加锁时长是在设置时根据对业务方法执行时长的预估设置的,设置后不可根据业务方法执行的时长进行动态调整。当容器成功获取分布式锁后开始执行业务方法,若业务方法执行的实际时长超过设置的分布式锁的加锁时长,当业务方法执行的当前时长达到分布式的加锁时长后分布式锁会被释放,但容器会继续执行该业务方法,若其它容器成功申请到分布式锁,其它容器也会执行该业务方法,造成同一时间有多个容器执行同一业务方法访问同一共享资源,会带来共享资源数据一致性问题;若业务方法执行的实际时长比加锁时长短,则会造成业务执行完毕后 ...
【技术保护点】
【技术特征摘要】
1.一种基于Redis缓存系统的分布式锁管理的方法,其特征在于,应用于管理端,所述方法包括:接收基于业务方法的分布式锁请求;若请求成功,则发送分布式锁,并记录所述分布式锁的加锁信息至缓存队列,其中,所述加锁信息至少包括所述分布式锁的加锁时长和执行所述业务方法的容器的IP地址;基于所述缓存队列中记录的所述容器的IP地址,定期检查所述容器的状态,并基于所述容器的状态,对所述容器对应的分布式锁进行处理。2.根据权利要求1所述的方法,其特征在于,所述基于所述容器的状态,对所述容器对应的分布式锁进行处理包括:当检查到所述容器处于存活状态,则基于所述缓存队列中记录的加锁信息,确定所述容器对应的分布式锁,并判断所述分布式锁的加锁时长是否超过预设的最大加锁时长,若未超过,则将所述分布式锁的加锁时长增加预设步长时长。3.根据权利要求1所述的方法,其特征在于,所述加锁信息至少还包括:最大加锁时长和步长时长;其中,所述基于所述容器的状态,对所述容器对应的分布式锁进行处理包括:当检查到所述容器处于存活状态,则基于所述缓存队列中记录的加锁信息,确定所述容器对应的分布式锁,并判断所述分布式锁的加锁时长是否超过对应的最大加锁时长,若未超过,则将所述分布式锁的加锁时长增加对应的步长时长。4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:若所述容器对应的分布式锁的加锁时长超过所述最大加锁时长,则释放所述分布式锁,并删除所述缓存队列中对应所述分布式锁的加锁信息。5.根据权利要求1所述的方法,其特征在于,所述基于所述容器的状态,对所述容器对应的分布式锁进行处理包括:当检查到所述容器处于未存活状态,则释放所述容器对应的分布式锁,并...
【专利技术属性】
技术研发人员:张利杰,
申请(专利权)人:上海万物新生环保科技集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。