在前面的博客中,我给大家演示了使用 @SentinelResource 定义资源完成限流的例子, 下面就从源码解析开始,看下SentinelResource是如何实现限流的,以及@SentinelResource提供了哪些功能,支持哪些属性。 @SentinelResource可以说是Sentine ...
分类:
其他好文 时间:
2020-02-02 21:54:00
阅读次数:
115
CountDownLatch 基于AQS实现的同步器,允许一个或者多个线程通过 方法进入阻塞等待,直到一个或者多个线程执行 完成。 在创建时需要传入一个 值,一旦某个或者多个线程调用了 方法,那么需要等待 值减为0,才能继续执行。 方法每执行一次,count(state)值减1,直到减为0。一个线程 ...
分类:
其他好文 时间:
2020-02-01 12:17:53
阅读次数:
67
上两篇我们讲了hash和list数据类型相关的主要实现方法,同时加上前面对框架服务和string相关的功能介绍,已揭开了大部分redis的实用面纱。 现在还剩下两种数据类型: set, zset. 本篇咱们继续来看redis中的数据类型的实现: set 相关操作实现。 研究过jdk的hashmap和 ...
分类:
其他好文 时间:
2020-02-01 10:42:36
阅读次数:
60
结论 RestTemplate 的 postForObject 方法有四个参数 String url = 顾名思义 这个参数是请求的url路径 Object request = 请求的body 这个参数需要再controller类用 @RequestBody 注解接收 Class responseT ...
分类:
其他好文 时间:
2020-01-29 22:02:04
阅读次数:
85
上一篇讲了hash数据类型的相关实现方法,没有茅塞顿开也至少知道redis如何搞事情的了吧。 本篇咱们继续来看redis中的数据类型的实现: list 相关操作实现。 同样,我们以使用者的角度,开始理解list提供的功能,相应的数据结构承载,再到具体实现,以这样一个思路来理解redis之list。 ...
分类:
其他好文 时间:
2020-01-29 14:30:24
阅读次数:
79
PriorityQueue 基于 实现,是一个无界队列,不允许null元素。底层存储使用数组,索引n的元素的左右两个孩子索引分别为 和 。 元素通过比较器排序,如果比较器为空,则使用自然排序。 默认容量大小为11,当存储数组中总元素个数等于数组长度时,触发扩容。扩容时,如果原存储数组长度小于64,则 ...
分类:
其他好文 时间:
2020-01-28 17:43:00
阅读次数:
66
HashMap 元素顺序:HashMap中元素是乱序的,并不会按照某种规律排序。在添加元素时新元素被插入到最后,扩容时,最后一个元素又被放置在桶的第一个元素。 默认容量为16,负载因子为0.75,扩容时,容量会x2扩大,扩容阈值也x2。 元素以一个数组为桶作为存储,数组的每一个索引位便是一个桶,桶中 ...
分类:
其他好文 时间:
2020-01-27 17:25:08
阅读次数:
67
Redis作为nosql数据库,kv string型数据的支持是最基础的,但是如果仅有kv的操作,也不至于有redis的成功。(memcache就是个例子) Redis除了string, 还有hash,list,set,zset。 所以,我们就来看看hash的相关操作实现吧。 首先,我们从作用上理解 ...
分类:
其他好文 时间:
2020-01-26 23:55:03
阅读次数:
241
前言 ——本文整理自《STL源码解析》 虽然源码解析的代码比较老但是核心思想并没有太多变化并且直接看源码有太多细节~~我又看不懂最新的~~。 简介 sort接受两个 RandomAccessIterators (随机存储迭代器),然后将区间内的所有元素以渐増的方式由小到大重新排列,第二个版本允许用户 ...
分类:
其他好文 时间:
2020-01-26 00:53:50
阅读次数:
95
上一篇文章从根本上理解了set/get的处理过程,相当于理解了 增、改、查的过程,现在就差一个删了。本篇我们来看一下删除过程。 对于客户端来说,删除操作无需区分何种数据类型,只管进行 del 操作即可。 零、删除命令 del 的定义 主要有两个: del/unlink, 差别是 unlink 速度会 ...
分类:
其他好文 时间:
2020-01-23 22:38:01
阅读次数:
86