![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 73
小小少年_
这个作者很懒,什么都没留下…
展开
-
Redis分布式锁加锁失败,休眠机制
redissonLock分布式锁在加锁的时候,如果已经有线程加锁成功,此时的线程会进入等待,比如:当前key还有2S过期,那就休眠2S,这里休眠怎么实现的呢?通过Semaphore来实现?如何实现?初始化Semaphore的permits为0,Semaphore是用来进行资源竞争的一个工具类,初始化时,指定的permits表示同时允许有几个线程持有资源,这里为0,就表示永远不允许有线程持有资源,那这样的话,在tryAcquire()时,只需要指定超时时间为key的过期时间即可,这样的话,就会在过期时间到原创 2022-04-16 14:31:22 · 4208 阅读 · 0 评论 -
Redis分布式锁零散知识
一、为了确保分布式锁的可用性,需要确保锁在任意时刻,能同时满足以下四个条件1.互斥性:在任意时刻,只有一个客户端能持有锁2.不会发送死锁,即时有一个客户端在持有锁期间崩溃而没有主动解锁,也需要保证其他客户端能加锁3.具有容错性,只要大部分的Redis节点正常运行,客户端就可以加锁解锁4.加锁和解锁必须是同一个客户端二、Redis分布式锁和Java锁的区别1. 如果是分布式部署的话,那么Java锁是锁当前机器上的请求,无法对其他机器的请求进行加锁,因为Java锁用的是jvm的机制,只在本机生效2原创 2021-12-04 13:55:30 · 1336 阅读 · 0 评论 -
Redis分布式锁之:RedLock
redLock也是Redis提供的一个分布式锁,和redissonLock有些区别是什么RedLock可以指定等待时间,也就是说,假如我指定了等待时间waitTime是2S,比如:1.A线程来加锁,正常去执行业务逻辑2.B线程也来加锁,此时会加锁失败,那B线程最多等待2S,如果超过了2S还没有获取到分布式锁,那B线程加锁就返回false,表示加锁失败redLock的思想是:redLock的使用,需要有奇数台独立部署的Redis节点在加锁的时候,会分别去N台节点上加锁,如果半数以上的节点加锁成原创 2021-12-04 13:34:41 · 3537 阅读 · 0 评论 -
Redis分布式锁之:RedissonLock
Redis提供的分布式锁有多个,这篇笔记主要记录redissonLock的相关内容原创 2021-12-04 13:11:14 · 5570 阅读 · 0 评论 -
Redis--blpop命令使用
在Redis的数据结构中,list这个类型的数据结构,我们说底层是采用的双向链表结构,可以从左边出队入队,也可以从右边出队入队,那其实list也提供了阻塞出队的命令,类似于jdk中的阻塞队列原创 2021-04-22 08:51:13 · 1184 阅读 · 2 评论 -
RedissonMultiLock + RedissonLock部分源码
在原创 2021-01-06 08:06:25 · 1222 阅读 · 0 评论