Redis分布式缓存

分布式锁

  1. 控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,通过互斥来防止彼此干扰;
  2. 目的:保证在分布式部署和应用集群中,同一方法在同一操作中只能被一台机器上的线程执行;
  3. 要求:这把锁应是一把可重入锁(避免死锁),具备高可用的获取锁和释放锁的功能,性能更好;
  4. 实现方案
    1. 获取锁时,使用 setnx (SETNX key value:当前仅当 key 不存在时,set一个key为value的字符串,并返回1,若key已存在,则什么都不做,返回0) 加锁,锁的value值为当前服务器内网IP编号拼接任务标识,在释放锁时进行判断,并使用 expire 命令为锁添加一个超时时间,超过该时间则自动释放锁;
    2. 获取锁时调用 setnx,如果返回0,则该锁正在被别人使用,返回1则成功获取锁;设置一个获取的超时时间,过期则放弃获取锁;
      setex key value expire
    3. 释放锁时,判断是不是该锁,即锁的value值为当前服务器内网IP编号拼接任务标识,若是,则执行 delete 释放锁;

你可能感兴趣的:(Redis分布式缓存)