基于Redis实现分布式锁

分布式锁的基本功能:1.同一时刻只能存在一个锁2.需要解决意外死锁问题,也就是锁能超时自动释放3.支持主动释放锁分布式锁解决什么问题:多进程并发执行任务时,需要保证任务的有序性或者唯一性准备:redis版本>=2.6redis是主从+sentinel模式原理:redis2.6之后,SET命令支持超时和key存在检查,这是一个原子操作获取锁
摘要由CSDN通过智能技术生成
分布式锁的基本功能:
1.同一时刻只能存在一个锁
2.需要解决意外死锁问题,也就是锁能超时自动释放
3.支持主动释放锁

分布式锁解决什么问题:

多进程并发执行任务时,需要保证任务的有序性或者唯一性

准备:
redis版本>=2.6
redis是主从+sentinel模式(为了高可用)

原理:
redis2.6之后,SET命令支持超时和key存在检查,这是一个原子操作

获取锁并设置超时时间:
SET key value [EX seconds] [PX milliseconds] [NX|XX]

删除锁:
DEL key

EX:单位是秒
PX:单位是毫秒
NX:如果key存在,返回nil(失败),不存在返回ok
XX:如果key存在,返回ok,不存在返回nil(失败)

基本操作如图示:

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值