Redis分布式锁实现及原理

实现redis分布式锁及原理

单体架构 中 synchronized 只是本地锁,锁的也只是当前jvm下的对象,在分布式场景下,要用分布式锁。

1.在高并发场景多个用户访问服务器,在redis那里同时会接收到多个请求,这个时候就需要在访问服务的redis那里加个锁就可以了,多个服务器谁拿到锁,哪个服务就执行,其他服务就进行等待直到获取锁。

服务器1要去访问redis,那么他会在redis中通过"setnx key value" 操作设置一个key 进去,value是啥不重要,重要的是要有一个key,也就是一个标记,而且这个key你爱叫啥叫啥,只要所有的服务器设置的key相同就可以。
那么我们可以看到会返回一个1,那就代表了成功。如果再来一个请求去设置同样的key这个时候会返回0,那就代表失败了。
那么我们就可以通过这个操作去判断是不是当前可以拿到锁,或者说可以去访问redis,如果返回

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南归北隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值