面试总结-Redis篇章(八)——Redis分布式锁

JAVA 面试总结-Redis分布式锁

        • 模拟抢券场景
      • 通过下面方法添加Synchronized锁来防止上述情况,
        • 如果上面是单体服务没有问题,但是如果项目是集群部署,会出现下面的问题,因为Synchronized是属于本地的锁
        • 端口8080和8081同时访问,那么两个线程会同时加锁
        • 这时候我们需要用分布式锁

面试总结-Redis篇章(八)——Redis分布式锁_第1张图片

模拟抢券场景

面试总结-Redis篇章(八)——Redis分布式锁_第2张图片
面试总结-Redis篇章(八)——Redis分布式锁_第3张图片
面试总结-Redis篇章(八)——Redis分布式锁_第4张图片

通过下面方法添加Synchronized锁来防止上述情况,

面试总结-Redis篇章(八)——Redis分布式锁_第5张图片

如果上面是单体服务没有问题,但是如果项目是集群部署,会出现下面的问题,因为Synchronized是属于本地的锁

面试总结-Redis篇章(八)——Redis分布式锁_第6张图片
面试总结-Redis篇章(八)——Redis分布式锁_第7张图片

端口8080和8081同时访问,那么两个线程会同时加锁

这时候我们需要用分布式锁

面试总结-Redis篇章(八)——Redis分布式锁_第8张图片
8080端口在进行线程1的时候,进行加锁,此时8081的进行访问的时候获取互斥锁失败,可以保证数据一致

你可能感兴趣的:(技术,面试,Redis,面试,redis,分布式)