当有多个客户端请求过来的时候,redis分布式会判断这个key是否被锁住,如果没有锁住的话,redis会通过hash算法计指定到某一个机器上执行lua脚本进行保存key。通过看门狗watch dog一个后台启动的监控线程去判断任务有没有执行完,如果任务没有执行完,到了超时时间,会通过延时的方式延长生存时间。当另一客户端请求过来以后,发现key已经被锁住,会一直循环等待直到另一个客户端线程占有key的锁被释放。
具体流程如下如:
redis分布式锁的底层原理
最新推荐文章于 2024-07-25 18:16:02 发布