自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(369)
  • 收藏
  • 关注

原创 后端核心技术知识导航

面试旺季笔者也收到很多读者的私信,所以笔者就对近期不断更新迭代补充的Java核心知识点进行一个导航汇总。,实时获取笔者最新的技术推文同时还能和笔者进行深入交流。,同时我的公众号也有我精心整理的。

2024-03-02 15:11:50 761 1

原创 JVM进阶专栏汇总(周更)

这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。

2024-01-28 11:17:51 1012

原创 MySQL进阶专栏(周更)

这是截至今日写过的文章汇总,对于关注笔者公众号有一段时间的读者都知道,笔者会每周对自己写过的文章整理至相关专栏,以便读者可以按需进行检索阅读。,这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。

2024-01-27 11:23:58 506

原创 Java并发编程进阶面试题专栏导航(周更)

这是笔者目前为止整理的并发编程,笔者后续会在每个周末进行周期性的补充和迭代,欢迎读者进行补充指正。,这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。

2024-01-07 16:20:19 1252

原创 基于Netty服务端快速了解核心组件

channel是Netty对于底层class socket中的bind、connect、read、write等原语的封装,简化了我们网络编程的复杂度,同时Netty也提供的各种现成的channel,我们可以根据个人需要自行使用。为保证网络服务器执行的效率,Netty大部分网络IO操作都采用异步的,以笔者建立连接设置的监听器为例,当前连接成功后,就会返回给监听器一个。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。

2024-07-26 09:19:08 526

原创 一文快速了解高性能网络通信框架Netty

最后我们给出FirstServerHandler 的代码,可以看到我们直接继承ChannelInboundHandlerAdapter 处理客户端发送的数据,每当服务端收到客户端数据时就会回调channelRead,我们的逻辑也很简单,收到数据之后直接回复。由此可知,一旦遇到高并发IO读写,由于一个客户端绑定一个线程的模式,所以每一个端口号的收发都需要一个线程进程处理,如果有大量连接接入势必导致频繁的线程上下文切换进而导致各种资源的消耗,由此导致著名的。

2024-07-25 09:05:57 566

原创 netty源码编译跑通简记

源码,发现有了一些不一样的见解,于是便打算重构一下过去的文章分享,而本文将会简单梳理一下笔者对于netty源码编译到运行的全过程,希望对你有帮助。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。获取项目地址,因为笔者习惯在源码上做个人注释,所以也需要进行个人的代码版本管理,所以直接选择下载的方式获取源码,而版本选择的则是。编译不通过,而解决方式也很简单,打开根目录下的pom文件,找到。即可和笔者和笔者的朋友们进行深入交流。

2024-07-24 08:32:45 589

原创 来聊聊redis集群数据迁移

redis集群提供16384个slot,我们可以按需分配给节点上,后续进行键值对存储时,我们就可以按照算法将键值对存到对应slot上的redis服务器上:集群节点本质就是通过slots这个数组记录当前节点的所管理的情况,这里我们可以看到slots是一个char数组,长度为char占1个字节,每个字节8位。每个char可以记录8个slot的情况,如果是自己的slot则对应char的某一个位置记录为1:我们以node-1。

2024-07-23 08:54:32 885

原创 redis集群中如何处理不同slot

个槽,它会因为我们集群个数配置的不同而分配不同的slot给各个节点,而这篇文章就来聊聊当某个节点处理到非它所负责的slot时是如何处理的,这一点很好的体现了。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。假设我们现在集群中有个节点,每个节点各自负责一部分槽,此时我们的客户端向节点2发起一个。

2024-07-22 08:35:36 520

原创 来聊聊去中心化Redis集群节点如何完成通信

我们以一个简单的场景为例介绍一下Gossip协议,默认情况下我们的当前有3个节点的集群,各个节点彼此按照通信要求发送自己的信息和与自己保持交流的节点,由此将有限的资源共享出去构成一个集群。,这个存活节点后续和其他节点通信时,就会将当前新添加的节点4发送出去,由此其他节点收到这个消息并存储下来,经过各个节点的不断反复通信,这个集群中的各个节点就会拥有集群中所有节点的信息。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。

2024-07-19 08:40:17 611

原创 来聊聊redis的发布订阅设计与实现

自此我们们将redis发布订阅的设计与实现,都分析完成了,这里笔者也简单的补充一句,从源码中我们可以看到redis的发布订阅模型没有持久化机制,所以对于可靠性要求高的场景笔者还是不太建议使用pub/sub。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。发布订阅源码的设计与实现,通过本文的阅读,你将会对发布订阅模型的设计思想以及对哨兵间选举通信的流程有着更底层的视角。订阅者的键值对结构,它用channel的名称作为。

2024-07-18 08:30:52 729

原创 来聊聊Redis哨兵如何主观认定下线

基于上文我们了解哨兵时间事件执行的大体流程,接下来我们会针对每一个流程进行详细的分析,首先我们先来了解一下对于断线重连检查方法,对于断线重连检查,因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。即可看到我们上文所说的而核心逻辑,它对于笔者上文的每一个流程都做了抽象,可以看到它会先尝试和断线的。

2024-07-17 08:39:56 593

原创 聊聊Redis哨兵选举与故障转移的实现

上一篇文章我们将哨兵主观下线的核心流程都分析完成,这一篇我们将接着之前的思路,将哨兵获取客观下线结果并结合raft协议完成哨兵leader选举完成故障转移的流程分析完成,希望对你有帮助。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。下线的看法,如果累加到的哨兵对于下线的看法大于或者等于我们配置。

2024-07-16 08:39:38 892

原创 Redis哨兵是如何完成初始化的

本系列终于更新到哨兵模块的介绍,由于哨兵模块涉及节点通信和选举等流程,所以笔者将其分为3个篇章进行剖析,而本文笔者将从源码分析的角度介绍一下redis哨兵是如何完成初始化的。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。自此我们将redis哨兵初始化的逻辑分析完成,希望对你有帮助。

2024-07-15 08:40:31 647

原创 以从节点的角度看看Redis主从复制的实现

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。近期工作遇到比较奇葩的规划,个人思绪略有惆怅,希望通过整理一些技术小文缓解心中的压抑,我们都知道。的状态是否是待连接,如果是则通过主库的ip及端口号信息发起连接,并在连接期间将状态设置为。发起非阻塞连接,并创建一个连接成功后的回调处理事件。

2024-07-12 09:07:37 556

原创 Redis如何高效实现定时任务

时间事件可以是单次到期执行销毁,也可以是定时任务,对此redis对于时间事件统一封装为对象,通过id来唯一标识一个事件,结合when_sec和when_ms记录任务到期执行的秒和分,而执行时间事件的函数也是交由timeProc指针所指向的函数执行。

2024-07-11 09:00:10 726

原创 来聊聊Redis持久化AOF管道通信的设计

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。管道通信的方式实现,通过管道通信的方式实现实时数据发送,对应子进程收到这些指令对应的字符串之后,就会将其写入。管道通信通常都是单向的,即收发通道需要交由两个数组空间才能实现,例如父进程写入客户端实时指令到通道只能通过。

2024-07-10 08:54:17 813

原创 来聊聊Redis的AOF重写机制

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。文件,基于del等指令将抹去一些无用的键值对,但是笔者查看源码后发现,此类说法有着严重的错误,所以笔者就基于此文来详细讨论一些。,可以看到其内部就是生成一个临时文件,然后遍历数据库中的键值对,根据键值对的类型生成相应的。以本文为例,假设我们。

2024-07-09 08:49:05 900

原创 安利一款新一代流程编排中间件spider-node

系列的快速部署过程,后续的文章我们将会基于一个经典的商城下单的例子,快速引导读者完成复杂业务的落地开发与逻辑复用,希望对你有帮助,同时我们也很希望您可以加入我们。以下图为例,我们商城下单的流程中配置好订单表和支付表的数据流关系之后,让AI了解其关系并快速落地对应域功能代码,由此快速的完成一个复杂的业务功能落地。因为之前业务开发中我们是基于域的维度进行开发,所以假设我们需要进行类似功能的开发,就可以复用原有的能力绘制流程图快速落地一套功能,这就是。如果我们看到所有的角色都启动成功,这就说明我们的。

2024-07-08 01:33:51 890

原创 来聊聊redis的AOF写入

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。的解读笔者会分为3篇进行解读,而本文会解读的是AOF写入的核心流程。,其内部逻辑最核心的逻辑就是将指令字符串添加到。的定义中就可以看到这个缓冲区的定义即一个。对应的将文件写入文件前的解析到的字符串,的写入到落盘的整体流程,希望对你有帮助。

2024-07-05 08:30:00 778

原创 聊聊Redis持久化策略RDB

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。文件会得到一堆类型乱码的内容,我们无法知晓写入的信息,我们可以直接键入。,通过比对这3条配置的上次保存时间计算出时间间隔,以及当前。文件中看到该方法的实现,可以看到为了避免脏写等问题,函数在看到这段逻辑,它会遍历出我们配置的保存间隔配置。

2024-07-03 14:46:51 557

原创 聊聊Redis中缓存淘汰算法的实现

的核心实现,可以看到其内部会检查当前使用的内存并查看是否超过最大内存上限,如果超过了则根据策略定位数据,则进入循环每次淘汰一批元素直到内存空间充裕为止,以笔者为例配置的是。通过上文的解析我们了解redis缓存淘汰算法的基本设计思路,我们不妨通过源码的方式加以印证,当调用set等指令添加新的键值对的时候,redis就会给这个键值对的。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。

2024-07-02 13:44:55 589

原创 来聊聊Redis定期删除策略的设计与实现

以上便是笔者对于redis过期键值删除策略设计的全部源码分析,可以看到由于redis单线程的设计,对于每一项操作都在时间和空间上做了极致的设计和实现,希望对你有帮助。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。对于过期键的删除策略,接下来我们就以源码的方式去印证这几点,可以看到。

2024-07-01 15:11:45 787

原创 来聊聊redis数据库的设计与实现

是内存中间件,对于这个观点,我其实不是很认同,从使用和redis工作机制来看,它无非是基于内存实现快速的非关系型数据的操作而已,然后在一定的时间段进行一次刷盘持久化,所以从我的认知来看,我觉得。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。得到相同的哈希值则定位相同的索引空间,从而造成碰撞,我们通过拉链法解决冲突的情况,于是我们的查询的时间复杂度有时候可能是。的存储是通过哈希表的哈希算法实现的,由此尽可能的。

2024-06-28 08:54:35 1013

原创 来聊聊Redis客户端的概念

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。自此我们从redis客户端创建和指令交互的流程详细的分析的redis客户端这个结构体在redis中的作用,希望对你有帮助。了解了客户端的基本结构之后,我们就从客户端发起连接并建立通信的整个过程了解一下客户端初始化的逻辑,当。

2024-06-27 14:30:48 947

原创 来聊聊Redis所实现的Reactor模型

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。,注意笔者所强调的非阻塞获取,这也就是为什么redis仅仅用一个主线程即可实现Reactor模型的原因所在。的调用,该方法会为当前服务端socket套接字的文件描述符绑定读事件的处理器。完成读写事件的处理,由此实现尽可能少的线程处理尽可能多的连接。

2024-06-25 13:16:07 979

原创 如何理解redis是单线程的

本质上的意思是说,对于核心的连接建立和指令处理是通过单个线程高效完成,而其余的一些非核心的IO耗时逻辑还是需要多线程来完成,希望对你有帮助。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。了解的任务消费的源码之后,我们再来看看任务的投递的逻辑,我们以aof文件刷盘的任务为例,从定时任务函数。

2024-06-24 10:19:32 885

原创 来聊聊redis文件事件驱动的设计

即可看到事件循环框架的核心实现,其本质就是完成事件循环框架的初始化,通过上一步传入的大小创建创建socket的数组空间,记录每一个接入的客户端。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。处理器的实现逻辑,可以看到其内部的处理逻辑本质获取套接字的文件描述符,并基于这个。

2024-06-21 09:46:37 12020

原创 聊聊redis中的有序集合

有序集合的实现可以说是集大成于一身,它之所以支持单元素查询和范围查询,是字典(dict)和跳表(skipList)的组合结果,它将带有权重的元素指针分别交给字典和跳表进行管理。Redis为什么用跳表实现有序集合当我们需要通过元素名称定位其权重时,我们可以通过哈希算法到字典中定位到对应的元素,以下图为例,若我们希望定位到apple这个元素的权重时,可以直接计算apple的哈希值结合哈希算法即可实现O(1)级别的元素定位。apple节点的2级索引。apple节点的1级索引。通过banana。

2024-06-19 10:05:12 669

原创 聊聊redis中的字典的实现

的字典采用的双数组的方式管理键值对,如下图所示,可以看到dict的数据结构定义了大小为2的哈希表数组,当某个哈希表碰撞激烈需要进行调整时就调整算法将对应的键值对存到。随着我们不断的新增键值对,当前的哈希算法得到的索引位置很大概率会出现哈希冲突,即每次定位到的索引位置都很大概率存在元素,这也就是我们的常说的哈希冲突,这就是。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。

2024-06-17 10:21:23 53

原创 记Windows环境下JDK安装配置

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。解压版之后,步入其文件夹内部即可看到JDK的一系列文章夹,这其我们唯一需要了解的就是。的环境变量,键入我们的JDK8的安装目录,以笔者为例对应的路径就是。的配置了,该决定指向基本类库的文件夹路径,我们手动创建。环境变量的配置,我们点击。

2024-06-14 08:52:51 469 1

原创 内网环境MySQL操作非正常耗时问题排查小结

当网络操作出现非正常耗时时,我们就需要从网络连接通信过程的角度进行覆盖式排查,即从客户端连接、网络路由、端口或者防火墙配置、当前网络服务程序配置等顺序进行逐一排查。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。服务器配置进行反向解析,正是这样一个不可达的操作直至超时,等待长时间后的。

2024-06-12 08:13:53 1140

原创 为什么使用Java8中的并行流运算耗时变长了?

近期对迭代的功能进行压测检查,发现某些使用并发技术的线程任务耗时非常漫长,结合监控排查定位到的并行流使用上的不恰当,遂以此文分享一下笔者发现的问题。这里笔者先简单介绍一下当前功能的使用背景,当前功能是一些大数据量的计算密集型任务定时执行,在常规优化效率有限的情况下,考虑到复用性,笔者通过。去提升线程数并不会带来提升,所以在笔者结合业务场景通过压测计算出每个定时任务的耗时,大约是5分钟,所以笔者通过调整定时任务的执行间隔由原来的。创建定量的线程,后续的我们的并行流运算的执行都会提交到该线程池中。

2024-06-11 09:00:24 869

原创 基于Gdb快速上手调试Redis

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。对于不需要的断点,我们可以用d指令进行删除,例如断点2即对swap函数的断点我们不需要,可直接键入。工具不同,终端调试工具无法一眼看到所有的代码,如果我们希望看到当前的代码信息,需要通过l即。

2024-06-07 09:04:42 614

原创 详解redis单线程设计思路

的设计者就采用单线程来处理十万级别的内存操作,通过单线程极致的压榨和利用多路复用机制,简化的实现的复杂度确保redis的实现更专注的数据结构设计的单个动作操作的优化,也保证后续的问题追踪和排查难度大大降低,后续也可以针对性的对单个慢操作点进行针对性定位和优化,由此思路实现一个综合性的网络内存数据库最佳方案。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。和键值对读写操作的内存数据库,本文将从源码的角度剖析一下。

2024-06-04 08:41:38 42

原创 来聊聊Redis中的字符串对象的设计

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。这种编码格式的字符串就是专门用于存储这种短字符串的,进行字符串足够小,所以在进行内存空间分配时,类型的字符串,进行内存空间时需要两次的分配过程,无论在内存管理还是对象操作上都没有。进行了详细的介绍了,而本文我将从顶层的视角来聊聊。

2024-05-31 09:18:17 30

原创 来聊聊Redis简单动态字符串SDS

sds数组自身通过buf字段记录字符数组,通过len记录当前字符串长度,以及通过free记录当前buf数组的空闲空间,那么问题来了为什么会有free这个字段呢?假设我们使用sds创建一个空间为5的数组,操作过程中修改了字符串内容将字符串Redis改为Res,sds的做法除了修改buf数组的字符串以外,还会同步的维护长度len和free字段,通过free字段的维护确保后续分配2个字符串可以直接利用现有内存而无需在创建全新的数组存放字符的操作,这也就是所谓的惰性释放的设计思想:对于这段结构的定义,我们可以。

2024-05-29 09:05:45 38

原创 聊聊我是如何调试redis源码的

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。官方仓库给出的提示,redis默认情况下采用jemalloc 进行编译和链接,所以对于上述问题我们可以直接采用指令。源码解读系列的开篇,感兴趣的读者可以按照笔者的配置步骤搭建一套。两个文件配置,tasks.json配置如下,只需指定编译的。

2024-05-28 09:55:39 939

原创 用go语言实现一个有界协程池

基于上图我们给出worker的接口定义,按照我们的实现每一个任务都是一个worker,协程池的协程可以从channel中得到对应的Worker并执行其TaskTask()

2024-05-27 08:30:00 671

原创 聊聊go语言对于socket的抽象

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。的对应协程挂起,反之若收到新连接则基于内核函数封装成一个。的实现,其本质就是调用accept方法获取就绪的。即可和笔者和笔者的朋友们进行深入交流。

2024-05-23 08:59:57 811

空空如也

空空如也

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

TA关注的人

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