2024年最新Redis分布式锁如何自动续期_redis续锁(1),2024年最新【吐血整理】

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

项目实战

最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

老任:这个…面试官,您上个问题是啥来着?

资深面试官:你们项目中分布式锁是怎么实现的。

老任:我们直接使用了Redisson中提供的分布式锁。

资深面试官:你给我滚!!!

Redisson的看门狗机制

使用redis分布式锁时,为了防止种种异常情况下,锁无法正常“释放”的情况,我们都会为锁设置个超时时间。

这时候,又会存在一个尴尬的情况,如果设置了超时时间,但在规定的时间内,业务逻辑还没有执行完,锁就被释放了…那么针对一些特定的业务逻辑,这可能又会引起新的问题…

所以Redisson就给我们提供了监控锁的看门狗机制,通过该机制,锁被关闭前,看门狗会不断的延长锁的超时时间。默认情况下,看门狗的锁超时时间lockWatchdogTimeout是30s,该值当然也是可以设置的。

源码伺候

现在让我们进入tryLock()方法来查看一下实现源码,在该方法中调用tryAcquire()方法。

tryAcquire()方法中调用tryAcquireAsync()方法。

tryAcquireAsync()方法中,如果leaseTime小于等于0,调用scheduleExpirationRenewal方法进行续期。

从该方法中看到,leaseTime表示锁的超时时间,如果调用tryLock方法加锁时,设置了该参数,看门狗机制不会生效。

scheduleExpirationRenewal()方法中调用了renewExpiration()方法。

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis分布式可以通过设置一个过期时间来防止死的发生,同时还可以自动续期。在Redisson实现分布式的代码中,可以看到设置了一个扫描间隔参数`setScanInterval`,这个参数表示每隔一定时间就会来确认一次是否释放。如果没有释放,那么就会自动续期,保证的有效性。 在具体的代码实现中,使用了Redisson的RLock对象来获取,并使用`lock.lock()`来加,`lock.unlock()`来释放。当执行`lock.lock()`时,会将的状态存储到Redis中,并设置一个过期时间。在的过期时间内,Redisson会定期发送续期请求来更新的过期时间,确保的持有者能够在业务处理完成前一直持有。一旦业务处理完成,调用`lock.unlock()`来释放时,Redisson会在Redis中删除对应的信息,从而释放。 关于Redis分布式的更多详细信息,你可以参考Redisson的官方文档,链接为:https://github.com/redisson/redisson/wiki/8.-distributed-locks-and-synchronizers。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis分布式如何自动续期](https://blog.csdn.net/upstream480/article/details/121578638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [06-Redis 实现分布式和解决续期问题](https://blog.csdn.net/jack1liu/article/details/96270927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值