自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (5)
  • 收藏
  • 关注

原创 MySQL的执行原理之查询重写规则(二)

这个查询表明我们想要将(SELECT m2FROM e2)这个子查询的结果作为外层查询的IN语句参数,整个查询语句的意思就是我们想找e1表中的某些记录,这些记录的m1列的值能在e2表的m2列找到匹配的值。这里可以把子查询的查询结果当作是一个表,子查询后边的AS t表明这个子查询的结果就相当于一个名称为t的表,这个名叫t的表的列就是子查询结果中的列,比如例子中表t就有两个列:m列和n列。如果子查询可以单独运行出结果,而不依赖于外层查询的值,我们就可以把这个子查询称之为不相关子查询。

2024-07-24 09:30:17 493

原创 MySQL的执行原理之查询重写规则(一)

对于一些执行起来十分耗费性能的语句,MySQL还是依据一些规则,竭尽全力的把这个很糟糕的语句转换成某种可以比较高效执行的形式,这个过程也可以被称作查询重写。

2024-07-24 09:27:20 488

原创 MySQL的执行原理之查询成本详解(二)

1、单次查询驱动表的成本2、多次查询被驱动表的成本(具体查询多少次取决于对驱动表查询的结果集中有多少条记录)对驱动表进行查询后得到的记录条数称之为驱动表的 扇出 (英文名:fanout)。很显然驱动表的扇出值越小,对被驱动表的查询次数也就越少,连接查询的总成本也就越低。假设使用s1表作为驱动表,很显然对驱动表的单表查询只能使用全表扫描的方式执行,驱动表的扇出值也很明确,那就是驱动表中有多少记录,扇出值就是多少。

2024-07-23 09:14:36 608

原创 MySQL的执行原理之查询成本详解(一)

MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询。I/O成本我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。这个从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。CPU成本读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间称之为CPU成本。对于InnoDB存储引擎来说,页是磁盘和内存之间交互的基本单位。

2024-07-23 09:10:52 554

原创 MySQL的执行原理刨析(二)

为了方便讲述,我们建立两个简单的演示表并给它们写入数据:连接的本质就是把各个连接表中的记录都取出来依次匹配的组合加入结果集并返回给用户。所以我们把e1和e2两个表连接起来的过程如下图所示:这个过程看起来就是把e1表的记录和e2的记录连起来组成新的更大的记录,所以这个查询过程称之为连接查询。连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组合,像这样的结果集就可以称之为笛卡尔积。

2024-07-22 17:30:33 841

原创 MySQL的执行原理刨析(一)

我们前边说过MySQL在一般情况下执行一个查询时最多只会用到单个二级索引,但存在有特殊情况,在这些特殊情况下也可能在一个查询中使用到多个二级索引,MySQL中这种使用到多个索引来完成一次查询的执行方法称之为:索引合并/index merge,具体的索引合并算法有下边三种。

2024-07-22 17:28:21 907

原创 史上最完善最体系的MySQL MVCC解析

1、如果被访问版本的trx_id属性值与ReadView中的creator_trx_id值相同,意味着当前事务在访问它自己修改过的记录,所以该版本可以被当前事务访问。2、如果被访问版本的trx_id属性值小于ReadView中的min_trx_id值,表明生成该版本的事务在当前事务生成ReadView前已经提交,所以该版本可以被当前事务访问。

2024-07-17 11:18:50 855

原创 史上最全的MySQL事务解析

事务B前后两次读取同⼀个范围的数据,在事务B两次读取的过程中事务A新增了数据,导致事务B后⼀ 次读取到前⼀次查询没有看到的⾏。在上面我们说过事务有一个称之为隔离性的特性,理论上在某个事务对某个数据进行访问时,其他事务应该进行排队,当该事务提交之后,其他事务才可以继续访问这个数据,这样的话并发事务的执行就变成了串行化执行。连老师借给李老师生活费,借了两次,每次都是1000,连老师的卡里开始有10000,李老师的卡里开始有500,从理论上,借完后,连老师的卡里有8000,李老师的卡里应该有2500。

2024-07-17 11:14:08 962

原创 史上最实用的MySQL调优策略(二)

有了慢查询语句后,就要对语句进行分析。一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。EXPLAIN语句来帮助我们查看某个查询语句的具体执行计划,我们需要搞懂EPLATNEXPLAIN的各个输出项都是干嘛使的,从而可以有针对性的提升我们查询语句的性能。

2024-07-15 20:06:51 984

原创 史上最实用的MySQL调优策略

慢查询日志,顾名思义,就是查询花费大量时间的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。如何开启,我们稍后再说。2.1.1慢查询基础-优化数据访问查询性能低下最基本的原因是访问的数据太多。大部分性能低下的查询都可以通过减少访问的数据量的方式进行优化。

2024-07-15 19:59:16 1101

原创 史上最实用的MySQL中的索引解析

InnoDB存储引擎支持以下几种常见的索引:B+树索引、全文索引、哈希索引,其中比较关键的是B+树索引。

2024-07-13 10:35:45 822

原创 MySQL数据库基础知识必知会(二)

在磁盘设备上,通过B+树可以有效的存储数据;所有记录都存储在叶子节点上,非叶子(non-leaf)存储索引(keys)信息;而且记录按照索引列的值由小到大排好了序。B+树含有非常高的扇出(fanout),通常超过100,在查找一个记录时,可以有效的减少IO操作;*扇出:是每个索引节点(Non-LeafPage)指向每个叶子节点(LeafPage)的指针;*扇出数 = 索引节点(Non-LeafPage)可存储的最大关键字个数 + 1。

2024-07-12 10:34:07 770

原创 MySQL数据库基础知识必知会(一)

范式来自英文Normal Form,简称NF。实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。

2024-07-12 10:31:28 546

原创 从零开始刨析MySQL调优策略(二)

这一点,也是针对联合索引来说的,前面我们反复强调过,所有记录都是按照索引列的值从小到大的顺序排好序的,而联合索引则是按创建索引时的顺序进行分组排序。比如:由于B+树中的数据页和记录是先按insert_time列排序的,所以我们上边的查询过程其实是这样的:找到insert_time值为'2021-03-22 18:23:42' 的记录。找到insert_timee值为'2021-03-22 18:35:00'的记录。

2024-07-11 11:08:22 1000

原创 从零开始刨析MySQL调优策略(一)

慢查询日志,顾名思义,就是查询花费大量时间的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。如何开启,我们稍后再说。2.1.1慢查询基础-优化数据访问查询性能低下最基本的原因是访问的数据太多。大部分性能低下的查询都可以通过减少访问的数据量的方式进行优化。

2024-07-11 11:05:32 1114

原创 MySQL体系架构解析

MySQL变种有好几个,主要有三个久经考验的主流变种:Percona Server,MariaDB和 Drizzle。它们都有活跃的用户社区和一些商业支持,均由独立的服务供应商支持。同时还有几个优秀的开源关系数据库,值得我们了解一下。

2024-07-10 11:10:10 968

原创 MySQL8新特性解析

一个staff表,里面有id,有name还有一个 m_id,这个是对应的上级id。数据如下:如果我们想查询出每一个员工的上下级关系,可以使用以下方式递归CTE:union ALL使用通用表表达式的好处就是上下级层级就算有4,5,6甚至更多层,都可以帮助我们遍历出来,而老的方式的写法SQL语句就要调整。

2024-07-10 10:22:50 845

原创 MySQL-InnoDB引擎底层解析

InnoDB的内存结构和磁盘存储结构图总结如下:其中的Insert/Change Buffer主要是用于对二级索引的写入优化,Undo空间则是undo日志一般放在系统表空间,但是通过参数配置后,也可以用独立表空间存放,所以用虚线表示。

2024-07-09 16:32:51 612

原创 模型泛化与工程技巧-模型评估

F1_score,在理想情况下,我们希望模型的精确率越高越好,同时召回率也越高越好,但是,现实情况往往事与愿违,在现实情况下,往往出现一个值升高,另一个值降低,有一个指标来综合考虑精确率和召回率,这个指标就是F值。召回率(Recall)的定义为:对于给定测试集的某一个类别,样本中的正类有多少被分类模型预测正确召回率的定义为:对于给定测试集的某一个类别,样本中的正类有多少被分类模型预测正确;Lift图衡量的是,与不利用模型相比,模型的预测能力“变好”了多少,lift(提升指数)越大,模型的运行效果越好。

2024-07-09 16:03:26 323

原创 模型泛化与工程技巧-模型泛化

过拟合(Overfitting):模型过于紧密或精确地匹配特定数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象。通俗的来讲,就是训练的模型在训练集上的精确度很高,但是在测试集上的精确度却很差的现象。选择合适的网络结构,通过减少网络层数、神经元个数、全连接层数等降低网络容量。简化模型的另一个好处是能让模型更轻便,训练速度更快,运行速度也会更快。采集更多数据 数据增强&噪声数据 重采样 生成数据。调整损失函数或训练过程中模型运行的方式。

2024-07-09 15:56:08 263

原创 第一次构建一个对话机器人流程解析(二)

'''我的第一个flask_service.py'''#初始化一个flask'''我的第一个send.py'''question = '你好啊,我的第一个flask'data = {#service#globalif '是谁' in question or '关系' in question:try:except:# except:# answer = '对不起啊,小智无法解决这个问题'

2024-07-08 18:29:19 362

原创 第一次构建一个对话机器人流程解析(一)

在此处,基于余弦相似度,对用户的提问和已有语料的提问进行匹配,若匹配成功,则表明用户提问与现有语料中有高度相似的提问,从而返回该提问对应的回答。线上推理时,一般会判断是否是有关于机器人属性的提问,从而进行回答 此处使用模板匹配,进行问题搜索,匹配成功则返回相关的答案。在实现过程中,此处使用一个xml配置文件,配置了机器人的个人年龄、性别、职业等内容,同时包含常见有关于机器人属性的问答。通过这种余弦相似度的匹配,可以构建一个简易的对话系统,但并不准确,且当语料很庞大时,这样的计算是很可怕的,而且准确率很差。

2024-07-08 18:19:12 495

原创 Redis基本命令源码解析-有序集合相关命令

如果元素不存在,如果不是xx,则在skiplist中插入节点,在dict中添加kv。如果值对象编码是ziplist,如果元素存在,如果是nx,则标志为不操作返回。如果是incr,则累加分值,如果分值变化了,则删除跳跃表节点并插入新节点。从db中根据key获得值对象,如果值对象是空或类型不是zset,则返回。从db中根据key获得值对象,如果值对象是空或类型不是zset,则返回。从db中根据key获得值对象,如果值对象是空或类型不是zset,则返回。

2024-07-07 11:27:41 740

原创 Redis基本命令源码解析-字符串命令

incrby key incr 调用incrbyCommand-->调用incrDecrCommand(incr)decr key 调用decrCommand-->调用incrDecrCommand(-1)incr key 调用incrCommand-->调用incrDecrCommand(1)如果nx=1,则要在db中查找所有的key,只要有一个key存在,则不能设置。或者增加的值>0并且原值>0并且增加的值>最大值,则响应值溢出并返回。如果值对象不存在,如果value为空,则响应0并返回。

2024-07-07 11:09:12 977

原创 深入刨析Redis存储技术设计艺术(二)

int hz;int sofd;int dbnum;int aof_fd;*/*//* ACLs */char *configfile:配置文件绝对路径int hz:serverCron的执行频次。

2024-07-05 09:51:56 1107

原创 深入刨析Redis存储技术设计艺术(一)

encoding:4bit,表示value内部存储的编码 10大编码 String: raw(0)、int(1)、embstr(8) hash: ht(2)、zipmap(3)、ziplist(5) list: quicklist(9) zet: intset(6)、ziplist(5) zset: skiplist(7) stream: listpack(10)如果是idletime key,则查找该键的robj对象,如果是lfu淘汰策略,则响应错误。

2024-07-05 09:43:50 1045

原创 深入解析RocketMQ的存储设计艺术(二)

零拷贝(英语: Zero-copy) 技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。➢零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率➢零拷贝技术减少了用户进程地址空间和内核地址空间之间因为上:下文切换而带来的开销可以看出没有说不需要拷贝,只是说减少冗余[不必要]的拷贝。

2024-07-04 11:14:11 846

原创 深入解析RocketMQ的存储设计艺术(一)

deletePhysicFilesInterval:删除物理文件的时间间隔(默认是100MS),在一次定时任务触发时,可能会有多个物理文件超过过期时间可被删除,因此删除一个文件后需要间隔deletePhysicFilesInterval这个时间再删除另外一个文件,由于删除文件是一个非常耗费IO的操作,会引起消息插入消费的延迟(相比于正常情况下),所以不建议直接删除所有过期文件。ConsumeQueue 是消息的逻辑队列,类似数据库的索引文件,存储的是指向物理存储的地址。messageId是全局唯一的。

2024-07-04 10:57:28 1063

原创 深入详解RocketMQ源码安装与调试

启动过程中任何的日志信息已经写入。

2024-07-03 21:36:09 245

原创 深入理解RocketMQ安装教程

编译成功之后,cmd命令进入‘target’文件夹,执行‘java -jar rocketmq-console-ng-2.0.0.jar’,启动‘rocketmq-console-ng-2.0.0.jar’。进入‘\rocketmq-externals\rocketmq-console’文件夹,执行‘mvn clean package -Dmaven.test.skip=true’,编译生成。打开‘MQ文件夹\bin’下的runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号。

2024-07-03 17:11:46 687

原创 详解NIO与零拷贝的艺术

零拷贝是服务器网络编程的关键,任何性能优化都离不开。在 Java 程序员的世界,常用的零拷贝有 mmap 和 sendFile。那么,他们在 OS 里,到底是怎么样的一个的设计?本文将简单聊聊 mmap 和 sendFile 这两个零拷贝。

2024-06-16 11:26:10 1082

原创 基于SpringBoot+Spark搭建本地计算引擎服务

本文只是描述搭建的主要流程,也为大家提供一个思路。如果想要了解详细的搭建留存请联系我哦。

2024-06-16 11:25:16 496

原创 Redis配置文件参数详解

17. 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。21. 指定是否启用虚拟内存机制,默认值为no,简单的介绍一下,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析Redis的VM机制)

2024-06-14 16:22:06 757

原创 大数据数据挖掘系统可视化设计艺术

算子是定义的是一个操作,我们可以通过自定义算子来覆盖我们的所有业务。同时算子也可以通过系统配置进行修改。

2024-06-14 10:18:26 619

原创 单体架构改造为微服务架构之痛点解析

但是这种划分逻辑会出现这样的情况:门店服务的开发人员很忙,没空接这个需求,而商品服务的开发人员刚好有空,但他们对门店服务的逻辑不了解。这就需要看这个功能由哪条业务线的产品负责人负责了,比如,由商品系统的产品经理负责,就把它放在商品服务中;根据前面产品从属原则的划分逻辑,特定门店特定商品的上架功能放在门店服务中,因为特定商品由门店的运营人员负责上架。这里的“进”指的是供应商的采购,“销”指的是门店的销售单,“存”指的是一些中央仓库的库存,且进销存供应链系统与新零售系统之间紧密结合,对应的架构图。

2024-06-12 15:58:55 1209 1

原创 实际生产环境JVM性能优化案例分析

这种系统一般至少需要三四台机器去支撑,假设我们部署了三台机器,也就是每台机器每秒大概处理100单,也就是每秒大概有100个订单对象在堆空间的新生代内生成,一个订单对象的大小跟里面的字段多少及类型有关,比如int类型的订单id和用户id等字段,double类型的订单金额等,int类型占用4字节,double类型占用8字节,粗略估计一个订单对象大概是1KB,也就是说每秒会有100KB的订单对象分配在新生代内,如图所示。如果线程数为10,准备时长为2,那么需要2秒启动10个线程,也就是每秒启动5个线程。

2024-04-29 15:58:32 1106

原创 深度刨析JVM垃圾收集的艺术

运行的程序中,当一个对象没有任何指针指向它时,它就会被视为垃圾。由此可以看出,判断一个对象是否为垃圾对象的关键标准就是是否有指针指向它。当一个对象没有任何指针指向它时,即说明该对象不再被引用。如果一个对象不被引用之后还继续留在内存中,被占用的空间也无法被其他对象使用,如果这些垃圾对象所占用的空间一直保留至程序结束,随着垃圾对象越来越多,将可能导致内存溢出。对这种垃圾对象的清理就类似于我们熟悉的磁盘碎片整理,通过定时清理磁盘中的垃圾碎片,可以有效提升空间利用率。

2024-04-29 10:30:33 436

原创 JAVA对象的实例化内存布局与访问定位刨析

意思是所有用过的内存在一边,空闲的内存在另外一边,中间放着一个指针作为分界点的指示器,分配内存就仅仅是把指针向空闲那边挪动一段与对象大小相等的距离罢了。意思是虚拟机维护了一个列表,记录哪些内存块是可用的,在分配的时候从列表中找到一块足够大的空间划分给对象实例,并更新列表上的内容。将对象的所属类(即类的元数据信息)、对象的HashCode、对象的GC信息、锁信息等数据存储在对象头中。它是对象真正存储的有效信息,包括程序代码中定义的各种类型的字段(包括从父类继承下来的和本身拥有的字段)。

2024-04-26 14:59:16 830 2

原创 深入理解JVM运行时数据区

运行时数据区可简单分为Native Method Stack(本地方法栈)、Program Counter Register(程序计数器)、Java Virtual Machine Stack(虚拟机栈)、Heap(堆区)和Method Area(方法区)。在Java中存在一个类Runtime,该类采用了单例设计模式,每一个Java应用程序都有当前类Runtime的唯一实例。

2024-04-26 11:28:44 666 2

原创 从Kafka的可靠性设计体验软件设计之美

Kafka 中采用了多副本的机制,这是大多数分布式系统中惯用的手法,以此来实现水平扩展、提供容灾能力、提升可用性和可靠性等。副本(Replica)是分布式系统中常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式。

2024-04-25 17:46:58 1410 2

ElasticSearch6.6全文检索.pdf

1)分布式:节点对外表现对等, 加入节点自动均衡。 2)Elasticsearch 完全支持 Apache Lucene 的接近实时的搜 索。 3)处理多租户(multitenancy) 不需要特殊配置,而Solr则需要更 多的高级设置。 4)Elasticsearch 采用 Gateway 的概念,使得数据持久化更加简 单。 5)各节点组成对等的网络结构, 某些节点出现故障时会自动分配 其他节点代替其进行工作。

2024-06-21

Flink快速入门与实战.pdf

Apache Flink是一个分布式大数据处理引擎,可对有限数据流和无限数据流 进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。 手把手带你搭建flink项目

2024-06-21

完整版基于HDP搭建大数据学习基础环境.pdf

学习目标 掌握Windows宿主机下基于VirtualBox+CentOS7搭建HDP大数据学习环境的技能,并能 以此内推到MacOS等其他主流操作系统 掌握把标准的ova文件导入到任意操作系统下直接完成HDP大数据学习环境构建的技能 特别说明 如果自己实在没办法按照第1章顺利搭建学习环境的同学,可以先按照第2章导入老师已经打包好的虚拟 镜像先把环境搞定,后续在慢慢研究如何自己搭建环境。

2024-06-21

Atlas元数据管理-v3.pdf

Apache Atlas是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括 数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。可以帮助企业构建其数据资产目录,对这些资产进行分类和管理,并为数据分析师和数据治理团队,提供围绕这些数据资产的协作功能。 Atlas不尽致力于管理共享元数据、数据分级、审计、安全性以及数据保护等方面,同时努力与Apache Ranger整合,用于数据权限控制策略。 Apache Atlas是hadoop的数据治理和元数据框架,它提供了一个可伸缩和可扩展的核心基础数据治理服务集,使得企业可以有效的和高效的满足Hadoop中的合规性要求,并允许与整个企业的数据生态系统集成

2024-06-17

DolphinScheduler工作流调度引擎.pdf

Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于 解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 DolphinScheduler曾用名为“EasyScheduler”,由易观开发,美国时间2019年8月29日,正式通过顶级 开源组织Apache基金会的投票决议,以全票通过的优秀表现正式成为Apache孵化器项目。由于名称 已在国外某App使用,经社区讨论与投票后改名为DolphinScheduler,简称”DS”, 中文名 “小海豚调度” (海豚聪明、人性化,有左右脑可互相换班,终生不用睡觉)。起这个名字就是希望 DolphinScheduler像它的名字一样,成为一个“开箱即用”的灵活易用的调度系统。

2024-06-17

大数据经典面试题.pdf

大数据领域的面试通常会涵盖一系列从基础知识到高级应用的问题,旨在评估应聘者对大数据处理、分析、存储技术的理解以及解决实际问题的能力

2024-06-16

JAVA中可伸缩IO的应用

Scalable IO in Java》 是java.util.concurrent包的作者,大师Doug Lea关于分析与构建可伸缩的高性能IO服务的一篇经典文章,在文章中Doug Lea通过各个角度,循序渐进的梳理了服务开发中的相关问题,以及在解决问题的过程中服务模型的演变与进化,文章中基于Reactor反应器模式的几种服务模型架构,也被Netty、Mina等大多数高性能IO服务框架所采用,因此阅读这篇文章有助于你更深入了解Netty、Mina等服务框架的编程思想与设计模式。

2024-06-14

Redis配置文件参数详解.docx

详细讲解redis.conf各个配置参数的含义及左右,让用户更好的了解redis的使用

2024-06-14

流程挖掘算法解析及汇总

流程挖掘常用算法原理介绍及对比

2023-01-28

HTML+5+从入门到精通

HTML+5+从入门到精通描述了html5的基本使用。

2014-08-18

就业指导之简历篇

就业指导之简历篇,对找工作的应届毕业生很有用,知道你们简历应该如何写

2013-12-04

java笔记nn

该文档介绍了,关于java se的所有基础知识,和一些相当经典的案例代码

2013-05-23

空空如也

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

TA关注的人

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