08_Redis分布式锁

redis分布式锁

一、锁的种类

  1. 单机版同一个JVM虚拟机内,synchronized或者lock接口
  2. 分布式多个不同JVM虚拟机,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了。

二、一个靠谱分布式锁需要具备的条件和刚需

  1. 独占性

    任何时刻只能有且仅有一个线程持有

  2. 高可用

    若在redis集群环境下,不能因为某一个节点挂了而出现获取锁和释放锁失败的情况

    高并发情况下,依旧性能良好

  3. 防死锁

    杜绝死锁,必须有超时控制机制或者撤销操作,有个兜底终止跳出方案

  4. 不乱强

    防止张冠李戴,不能私下unlock别人的锁,只能自己加锁自己释放,自己上的锁必须自己解

  5. 重入性

    同一个节点的同一个线程如果获得锁之后,它也可以再次获取这个锁

三、分布式锁

  1. setnx key value
  2. set key value [EX seconds] [PX milliseconds] [NX] [XX]

四、重点

JUC中AQS锁的规范落地参考,可冲入锁考虑,lua脚本,redis命令 逐步实现分布式锁

五、案例

六、手写分布式锁分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值