redsync源码解读

  1. setnx的作用
    a. 将获取和设置值变成原子性的操作

  2. 如果我的服务挂掉了-死锁
    a. 设置过期时间
    b. 如果你设置了过期时间,那么如果过期时间到了我的业务逻辑没有执行完怎么办?
    **1、过期之前刷新一下
    **2、需要自己去启动协程完成延时的工作:延时的接口可能会带来负面影响,如果其中某一个服务hung住了,2s就能执行完,但是你hung住那么你就会益智区申请延长锁,导致别人获取不到锁,这很要命

  3. 分布锁需要解决的问题-lux脚本去做
    a. 互斥性-setnx
    b. 死锁
    c. 安全性:锁只能被持有该锁的用户删除,不能被其他用户删除,当时设置的value值是多少只有但是的g才能知道,再删除的时候取出redis中的值和当前自己保存下来的值对比一下

  4. 即使你这样实现了分布式但是还是会有问题-redlock

posted @ 2022-02-06 14:38  陈华波  阅读(127)  评论(0)    收藏  举报