03 2020 档案

摘要:前言 前面已经讲解了Zookeeper可重入锁的实现原理,自己对分布式锁也有了更深的认知。 我在公众号中发了一个疑问,相比于Redis来说,Zookeeper的实现方式要更好一些,即便Redis作者实现了RedLock算法来解决Redis集群模式下分布式锁的弊端,但Redis实现的分布式锁仍然不是那 阅读全文
posted @ 2020-03-31 08:56 一枝花算不算浪漫 阅读(857) 评论(1) 推荐(0) 编辑
摘要:前言 前面已经讲解了Redis的客户端Redission是怎么实现分布式锁的,大多都深入到源码级别。 在分布式系统中,常见的分布式锁实现方案还有Zookeeper,接下来会深入研究Zookeeper是如何来实现分布式锁的。 Zookeeper初识 文件系统 Zookeeper维护一个类似文件系统的数 阅读全文
posted @ 2020-03-30 07:27 一枝花算不算浪漫 阅读(954) 评论(0) 推荐(2) 编辑
摘要:前言 前面已经写了Redisson大多的内容,我们再看看Redisson官网共有哪些组件: image.png 剩下还有Semaphore和CountDownLatch两块,我们就趁热打铁,赶紧看看Redisson是如何实现的吧。 我们在JDK中都知道Semaphore和CountDownLatch 阅读全文
posted @ 2020-03-23 10:46 一枝花算不算浪漫 阅读(1660) 评论(2) 推荐(0) 编辑
摘要:前言 关于读写锁,大家应该都了解JDK中的ReadWriteLock, 当然Redisson也有读写锁的实现。 所谓读写锁,就是多个客户端同时加读锁,是不会互斥的,多个客户端可以同时加这个读锁,读锁和读锁是不互斥的 Redisson中使用RedissonReadWriteLock来实现读写锁,它是R 阅读全文
posted @ 2020-03-22 08:05 一枝花算不算浪漫 阅读(1947) 评论(0) 推荐(1) 编辑
摘要:前言 前面已经学习了Redission可重入锁以及公平锁的原理,接着看看Redission是如何来实现RedLock的。 RedLock原理 RedLock是基于redis实现的分布式锁,它能够保证以下特性: 互斥性:在任何时候,只能有一个客户端能够持有锁;避免死锁: 当客户端拿到锁后,即使发生了网 阅读全文
posted @ 2020-03-21 09:37 一枝花算不算浪漫 阅读(5334) 评论(2) 推荐(3) 编辑
摘要:前言 前面分析了Redisson可重入锁的原理,主要是通过lua脚本加锁及设置过期时间来保证锁执行的原子性,然后每个线程获取锁会将获取锁的次数+1,释放锁会将当前锁次数-1,如果为0则表示释放锁成功。 可重入原理和JDK中的可重入锁都是一致的。 Redisson公平锁原理 JDK中也有公平锁和非公平 阅读全文
posted @ 2020-03-20 11:56 一枝花算不算浪漫 阅读(2888) 评论(0) 推荐(0) 编辑
摘要:前言 主流的分布式锁一般有三种实现方式: 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 之前我在博客上写过关于mysql和redis实现分布式锁的具体方案:https://www.cnblogs.com/wang-meng/p/10226618.html里面主要是从实现原 阅读全文
posted @ 2020-03-19 16:17 一枝花算不算浪漫 阅读(3586) 评论(0) 推荐(0) 编辑
摘要:说明 这里文章大多为复习内容,内容精简干练,为原有基础知识回顾 ArrayList,LinkedList 使用到的工具类 System.arraycopy(srcElements, srcIndex, targetElement, tarIndex, srcLength);Arrays.copyOf 阅读全文
posted @ 2020-03-01 14:22 一枝花算不算浪漫 阅读(754) 评论(0) 推荐(0) 编辑