分布式锁是一种跨进程,跨节点的一种互斥锁,它可以保证多个机器节点对访问共享资源的排他性。我们也可以使用redis的setnx命令来实现排他性,当key不存在的时候就返回1,存在的话就返回0,也可以使用expire命令来设置锁的过期时间,从而避免死锁问题,对于业务没执行完锁过期的话,可以写定时任务对指定的key续期。但是这种都是比较麻烦的,Redission的出现可以就方便了这些步骤,Redission底层封装了一个watchdog看门狗机制,它会去对我们的key去做续期,另外是基于lua脚本实现,用于保证设置锁和过期时间的原子性,防止我们设置锁之后出现意外情况宕机从而导致死锁的发生!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐