自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 HashedWheelTimer源码解析

HashedWheelTimer源码分析 HashedWheelTimer使用的是绝对时钟和增加round属性的方式。 结构分析 ​ 如图,HashedWheelTimer代表时间轮,是一个环形队列,底层使用数组实现,每个槽存储一个HashedWheelBucket,这个bucket就是存储任务列表的容器,里面有一个的双向链表HashedWheelTimeout,每一个HashedWheelTimeout里面有一个timer(TimerTask)代表任务。 源码分析 基本属性 HashedWheel

2021-01-25 19:24:49 245

转载 时间轮算法

时间轮算法 最近工作中使用了Xxl-Job框架来做分布式调度,内部采用了时间轮做整体调度,顺便学习并总结一下。 概述 绝对时间和相对时间 定时任务一般有两种: 1. 约定一段时间后执行。 2. 约定某个时间点执行。 ​ 其实这两者是可以互相转换的,比如现在有一个定时任务是12点执行,当前时间是9点,那就可以认为这个任务是3小时后执行。同样,现在又有一个任务,是3小时后执行,那也可以认为这个任务12点执行。 ​ 假设我们现在有3个定时任务A、B、C,分别需要在3点、4点和9点执行,我们把

2021-01-25 19:21:04 2410

原创 Bloom Filter

布隆过滤器一、简介二、原理三、使用场景         如今我们使用的各种各样的APP都有推送功能,不停再给我们推送各种热点信息,而他每次推送的时候都要去重,排除掉我们已经看过的内容。那么你知道这些APP的推荐系统是怎么实现去重的吗?       &nbsp...

2020-05-04 18:25:44 199

原创 SkipList

跳跃链表原理简介代码Demo 原理简介       说到怎样在一组数据中快速的查找某个元素,我们最先想到的肯定是二分查找,而使用二分查找就要构建一个顺序排列线性表结构,虽然加快了查询的效率,但是增、删、改的效率大大下降。而链表类的数据结构增删改操作效率是很高的,因为它只需要更改相应的指针即可,而不像数组类的顺序线性表增删改操作需要变更...

2020-05-04 17:19:24 103

原创 三、Redis做延时队列

Redis做延时队列前言1、异步消息队列2、队列之阻塞读 前言       现在市面上有很多好用的开源的消息队列中间件,例如RocketMq、Kafka以及Rabbitmq等等,它们都可以在应用程序之间增加异步消息传递功能。但是要使用这些中间件都包含很多组件,在你的消费队列很少的情况下就显得不是很好。   &nbsp...

2020-03-29 20:59:29 193

原创 二、Redis做分布式锁

Redis做分布式锁使用分布式锁的原因Redis做分布式锁1、Redis分布式锁的奥义 使用分布式锁的原因       当今大部分的应用都是分布式的,而分布式的应用在进行逻辑处理时不可避免的会遇到并发问题。例如一个更改某条数据状态的操作,常见的流程就是先读出该数据的状态,在内存里面进行修改,修改完在同步到DB中。  &nbsp...

2020-03-29 17:57:39 89

原创 一、Redis基础数据结构简介

Redis基础数据结构String(字符串) String(字符串)       字符串string是Redis最简单的数据结构,他的内部表示和Java一样就是一个字符数组。Redis所有的数据结构都以唯一的key字符串作为名称,然后通过这个唯一key值来获取相应的value数据。不同类型的数据结构的差异就在于value的结构不一样。 ...

2020-03-28 14:06:02 179

阿里巴巴Java.pdf.zip

阿里巴巴Java.pdf.zip

2020-05-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除