自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《深入理解Nginx》 学习笔记(二)

《深入理解Nginx》学习笔记(二)运行中的Nginx进程间的关系Nginx配置的通用语法(1)块配置项(2)配置项的语法格式Nginx服务的基本配置用于调试、定位问题的配置项(1)是否以守护进程方式运行Nginx(2)是否以master/worker方式工作(2)error 日志的设置(4)是否处理几个特殊的调试点(5)仅对指定的客户端输出debug级的日志(6)限制coredump核心转储文件的大小(7)指定coredump文件生成目录正常运行的配置项(1)定义环境变量(2)嵌入其他配置文件(3)pid

2022-03-31 11:51:25 2817

原创 《深入理解Nginx》 学习笔记(一)

《深入理解Nginx模块开发》 学习笔记(一)Nginx是什么为什么选择Nginx准备工作操作系统必备软件(1)GCC编译器(2)PCRE库(3)zlib库(4)OpenSSL库磁盘目录Linux内核参数的优化编译安装Nginxconfigure详解Nginx的命令行控制Nginx是什么Nginx是由来自俄罗斯的Igor Sysoev 使用C语言开发并开源,而且赋予其最自由的2-clause BSD-like license 许可证;Nginx是一个跨平台的Web服务器;Nginx使用基于事件驱动

2022-02-17 19:05:26 1613

原创 Reactor的原理与实现

Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。 Reactor模式是处理并发IO比较常见的一种模式,用于同步IO,中心思想是将所有要处理的IO事件注册到一个中心IO多路复用器上,同时主线程/进程阻塞在多路...

2021-12-29 18:59:12 689

原创 C 实现TCP服务端(select、poll、epoll)

使用C简单的实现一个tcpserver,包括常规server、多线程实现server、select实现server、poll实现server、epoll实现server。常规模式#define MAXLEN 4096int main(int argc, char **argv) { int listenfd, connfd, n; struct sockaddr_in servaddr; char buff[MAXLEN]; if ((listenfd ...

2021-12-23 19:14:40 2350

原创 网络IO模型

网络IO会涉及到两个系统对象,一个时用户空间调用IO的进程或线程,另一个时内核空间的内核系统,网络IO本质是socket的读取,比如发生IO操作read时,会经历两个阶段:等待数据准备就绪; 将数据从内核拷贝到进程或者线程; Unix的五种I/O网络模型:阻塞IO (blocking IO); 非阻塞IO (non-blocking IO); 多路复用IO (IO multiplexing); 异步IO (Asynchronous IO); 信号驱动IO (...

2021-12-23 16:05:45 1268

原创 设计模式:观察者模式(三)

定义 定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(subject)的状态发生改变时,所有依赖于他的对象都得到通知并自动更新。--《设计模式》要点观察者模式使得我们可以独立地改变目标与观察者,从而使二者之间的关系松耦合; 观察者自己决定是否订阅通知,目标对象并不关注谁订阅了; 观察者不要依赖通知顺序,目标对象也不知道通知顺序; 常用在基于事件的ui框架中,也是MVC的组成部分; 常用在分布式系统中,actor框架中;本质 触发联动...

2021-12-16 19:19:28 193

原创 设计模式:模板方法(二)

定义 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。--《设计模式》背景 某个类,有一套固定的流程,但是其中有若干个子流程可创新替换,以尝试迭代更新主流程。要点最常用的设计模式,子类可以复写父类子流程,使父类的骨架流程丰富; 反向控制流程的典型应用; 父类protected保护子类需要复写的子流程;这样子类的子流程只能父类来调用;本质 ...

2021-12-13 06:22:46 68

原创 设计模式:基础(一)

设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案;类模型类关系设计原则...

2021-12-08 09:27:55 162

原创 海量数据去重的Hash、BloomFilter、bitmap

从海量数据中查询某个字符串是否存在?平衡二叉树 增删改查时间复杂度为,100万个节点最多比较20次,10亿个节点最多比较30次; 平衡的目的是增删改后,保证下次搜索能稳定排除一半的数据; 通过比较保证有序,通过每次排除一半的元素达到快速索引的目的。 散列表 根据 key 计算 key 在表中的位置的数据结构;是 key 和其所在存储地址的映射关系; struct node { v...

2021-11-20 14:01:59 1070 2

原创 B树的性质与代码实现

性质 多叉树的作用,层高降低,使节点的数量变少,查找节点的次数变少。在内存中影响不大,但是可以有效增加访问磁盘的速度。(磁盘每寻址一次就需要转动一次)B树基于多叉树并且遵循:约束平衡; 约束每个节点子树的数量; 数据有规律 一棵M阶B树T,满足以下条件:每个节点至多拥有M棵子树; 根节点至少拥有两棵子树; 除了根节点以外,其余每个分支节点至少拥有M/2棵子树; 所有叶节点都在同一层上; 有k课子树的分支结点则存在k-1个关键字,关键字按照递增...

2021-11-11 00:44:04 419 1

原创 二叉树与红黑树

红黑树是许多“平衡”搜索树中的一种,可以保证在最坏情况下基本动态集合操作的时间复杂度为O(lgn)。性质每个节点是红的或者黑的 根节点是黑的 每个叶子节点是黑的 如果一个节点是红的,他的两个孩子都是黑的 对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点 树中每个节点包含5个属性:color、key、left、right、p。如果一个节点没有子节点或父节点,则该节点相应指针属性的值为NIL。可以将NIL视为指向二叉搜索树的叶节点(外部节点)的指针...

2021-10-25 00:09:10 166

原创 二叉搜索树

二叉树与红黑树

2021-10-21 10:33:18 55

空空如也

空空如也

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

TA关注的人

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