- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 redis 6.0多线程机制
前言 redis6.0主要重磅特性是多线程,本篇主要向大家讲解redis多线程的机制,在讲解多线程机制之前,先要看看redis的单线程机制。所以,本篇先来带大家回顾一下redis 6.0以前版本的单线程机制,再重点讲解redis6.0的多线程机制。...
2021-03-28 00:19:21 1231 1
原创 实现布隆过滤器方式——redis布隆过滤器插件rebloom
引言本篇主要介绍使用redis布隆过滤器插件实现布隆过滤器。Redis 4.0本版之后,增加了redis布隆过滤器的实现插件——rebloom,下面笔者带大家从安装到整合的项目使用一一道来。1、安装布隆过滤器在指定目录依次执行以下命令完成安装(本篇以目录/usr/local为例)cd /usr/localgit clone git://github.com/RedisLabsModules/rebloomcd rebloommake2、配置布隆过滤器插件安装目录打开刚才安装.
2021-03-13 22:49:32 1028
原创 实现布隆过滤器方式——google guava框架
引言实现布隆过滤器的方式主要有三种,分别是使用google guava框架实现、使用redis原生命令实现和使用redis布隆过滤器插件实现。接下来的几篇博客中,我将逐一介绍。一、使用google guava框架实现场景:我们以判断用户是否已经注册为例。主要思路是我们简单以项目启动的过程中,把已经注册的用户编号存入布隆过滤器中,然后调用查询接口直接查找布隆过滤器中是否存在指定用户编号,若不存在,则代表用户没有注册。实现步骤如下:1、添加pom依赖 <dependen
2021-03-10 11:19:07 1010
原创 线程池实现原理(二)
前言本篇主要介绍除了线程池执行任务的流程。详解线程池执行流程向线程池提交任务时的执行任务流程如下图所示。首先,当向线程池提交任务时,会先判断线程池中的核心线程数是否大于设置的核心线程数,如果不大核心线程数就创建线程。 如果大于核心线程数,就会判断缓冲队列是否满了,如果没有满,则放入缓冲队列,等待线程空闲时执行任务。 如果队列已满,则判断是否达到了设置的最大线程数,若没有就创建线程来执行任务。 如果已经达到了设置的最大线程数,就执行指定的拒绝策略。我们在向线程提交任务时可以使用e.
2021-02-22 23:17:05 194
原创 线程池实现原理(一)
前言线程池我们都知道之所以使用线程池是因为通过复用线程池,避免线程频繁地创建和销毁。本篇文章中,我会首先介绍常用的类型和适用场景以及线程池的实现原理。1、线程池的类型在Java的Executors类中提供了5种类型的线程池的创建方法。它们分别是:1、newFixedThreadPool 固定大小线程池,适用于任务数量不均匀的场景或对内存压力不敏感,但系统负载比较敏感的场景;2、newCachedThreadPool 缓存线程池,适用于要求低延迟的短期任...
2021-02-21 16:59:27 211
原创 Netty成长之路——Netty框架原理
引言 说到Netty框架原理,我们首先想到的便是NIO,什么是NIO?NIO的意思是非阻塞IO,也就是说单个线程可以同时进行多个IO操作,而不会被任何IO操作阻塞住。同一个线程即能同时Accept网络套件字,又可以同时对套件字进行读写操作,然后还可以同时处理消息。1、基础原理 Netty是基于事件驱动,当...
2020-07-23 01:36:48 235
原创 Netty成长之路——Netty核心组件
概述 Netty核心组件主要包括Channel、回调、Future、事件和ChannelHandler。这些组件代表了不同类型的构造、资源、逻辑以及通知。你应用程序就是使用它们来访问网络以及流经网络的数据。接下来,对让我一一介绍每个组件。1、Channel 它是Java NIO的一个基本构造。它代表一个到实体的开放连接,如读操作和写操作。我们可以把它看作是一个传入或传出数据的载体。所以,它可以被打开或关闭,连接或断开。2、回调 回调就是一个方法,它是一个指向已...
2020-07-17 00:32:49 382
原创 Netty成长之路——异步和事件驱动
引言 本篇之所以要谈到异步和事件驱动,是因为这和Netty密切相关,尤其核心组件。所以很有必要先搞清楚什么是异步和事件驱动。1、Java NIO Java NIO,即Java非阻塞I/O的意思。Java对于非阻塞I/O的支持是在2002年引入的,位于JDK 1.4的java.nio包中。NIO最开始是新的输入/输出(New Input/New Output)的英文缩写。但是,Java API已经出现足够长的时间了,不再是“新的”了。因此,如今大多数用户因为NIO代表非阻塞I...
2020-06-29 09:13:18 258
原创 Netty成长之路——心跳保活
引言 在我上一篇《Netty成长之路——初始Netty》文章列举的演示Netty客户端和服务端使用效果示例中,要想保持Netty客户端与服务端长连接不中断的目的。就需要加入另一个机制——心跳保活。1、什么是心跳保活 心跳保活,是应用层通过心跳包的超时、重连切换等方式来执行重连操作。心跳一般是指定客户端或服务端,每隔一定时间向另一端发送一段自动命令消息,以判断双方是否存活,因其按照一定间隔发送,类似于心跳,保证存活。故被称为心跳保活。2、为什么要使用心跳保活 心...
2020-06-26 21:33:10 1683
原创 Netty成长之路——初始Netty
前言 初始Netty框架是在一家电商公司,开发微信应用小程序,解决客服聊天系统消息使用方案时用到的。在此之前,也仅仅是了解过它,写过一些demo而已,从未深入学习过。这次因为研发的产品需要,有幸再次学习它,索性我就搞个透。元规正传,我们这就开始。1、Netty简介Netty 是一个基于NIO的客户端、服务端的编程框架,使用Netty可以确保你快速和简单的开发出一个网络应用,Ne...
2020-04-30 05:44:27 383
rabbitmq-server-generic-unix-3.6.16.tar.xz和安装说明
2021-03-18
eWebEditor 商业版
2015-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人