-
浏览器输入一个网址发生了什么(二) TCP模块封装和传输机制
发布时间:2021-07-23 10:03上节简单的介绍了http报文封装和dns请求获取目标IP 本节将介绍http报文在协议栈中如何进一步处理并发送到网络中。这里说的协议栈是指TCP/IP协议栈。 &nbs
-
浏览器输入一个网址发生了什么(一) 封装http消息和dns请求
发布时间:2021-07-21 12:43本系列文章围绕着“往浏览器输入网址后发生了什么”介绍计算机网络的相关基础知识。本文将介绍往浏览器中输入一个网址后客户端如何封装http消息和发送dns请求查询目标主机的ip。
-
从IO模型到协程(四) 用python实现一个多路复用程序
发布时间:2020-11-10 23:27我们将以socket编程模拟http请求和多路复用io模型逐步引入协程首先,使用socket通信模拟http请求,下面是客户端的请求代码:# coding=utf-8 import socket
-
从IO模型到协程(三) 多路复用之select、poll和epoll
发布时间:2020-11-05 11:35什么是IO多路复用 IO多路复用本质是操作系统的一系列系统调用(select(), poll() 和 epoll()),它可以监视多个套接字,一旦某个套接字就绪(一般是读就绪或者写就绪),内核就
-
从IO模型到协程(二) BIO模型和NIO模型
发布时间:2020-11-05 10:18BIO:同步阻塞I/O模式 以下面的代码为例: 先是服务端代码: # coding=utf-8 from threading import Thread, currentThr
-
从IO模型到协程(一) 什么是IO,用户进程与内核
发布时间:2020-11-05 01:07什么是io? 在计算机系统中I/O就是输入(Input)和输出(Output)的意思,针对不同的操作对象,可以划分为磁盘I/O模型,网络I/O模型,内存映射I/O, Direct I/O、数据库I/
-
深入Redis之 redis常见面试题(十四)
发布时间:2020-10-10 22:561.Redis有哪些数据结构 字符串String、字典Hash、列表List、集合Set、有序集合Zset。 除此之外还有: HyperLogLog,Pub/Sub发布订阅,布隆过滤器,Bi
-
深入Redis之 redis中的内存管理(十三)
发布时间:2020-10-10 22:50一、redis的内存消耗在哪里如何查看redis的内存消耗情况info memory 命令每一项的具体意思可以看博客的图片,标红的要重点关注。在我们的印象中,我们都会认为redis占用的内存
-
深入Redis之 redis中的事务和锁(十二)
发布时间:2020-10-10 22:47一、redis缓存的雪崩、穿透和击穿 以电商的缓存数据为例,目前电商首页以及热点数据都会去做缓存 ,一般缓存都是定时任务去刷新,或者是查不到之后去更新的,定时任务刷新就有一个问题。 1.缓
-
深入Redis之 redis布隆过滤器(十一)
发布时间:2020-10-08 20:05一、引出布隆过滤器 现在有一个问题: 现在有50亿过个电话号码,有10万个电话号码,要快速准确判断10万个电话号码是否存在。 1.如果通过数据库查询:不能快速查询。 2.如果是将数据放入r
-
工具篇:git常用命令和使用
发布时间:2020-10-08 11:271. 创建一个git仓库(仓库又叫做版本库): 仓库有两种:普通仓库和裸仓库 git init 仓库名 如git init a 此时会创建一个a目录,里面有
-
深入Redis之 redis cluster常见问题 (十)
发布时间:2020-10-07 10:29redis集群的故障转移 A. 故障发现 redis集群通过ping/pong消息实现故障发现(redis集群本身自己带有故障转移功能,不需要sentinel),分为主观下线和客观下线。
-
浅谈操作系统原理(九) 传输层(TCP/UDP)和应用层(HTTP)
发布时间:2020-04-04 19:15传输层 UDP协议详解 UDP —— 用户数据报协议 这里的数据报是指应用层直接传过来的数据报,UDP协议不会对其进行任何处理,不拆分也不合并
-
浅谈操作系统原理(八) 计算机网络基础概述
发布时间:2020-04-04 13:24计算机网络基础概述网络层级结构设计的基本原则计算机网络是使用分层来实现的。分层设计的原则:1.各层之间是相互独立的,这一层不需要知道下一层或者上一层是怎么实现的。即层与层之间耦合度是非常低的。2.各层
-
浅谈操作系统原理(七) 使用python写一个线程池并使用多线程写爬虫
发布时间:2020-03-30 18:51线程池 线程池是存放多个线程的容器 CPU从线程池中调度线程并执行,执行后不会销毁线程,而是将线程放回线程池以便重复利用。 在正式的开发中,当我们想用多线程完成某个任务的时候,我们不会在需要
-
浅谈操作系统原理(六) 进程和线程同步
发布时间:2020-03-25 17:31本节主要介绍进程和线程同步的方式1.线程同步之互斥量场景:当多个线程争抢一个临界资源(临界资源是可由多线程或多进程共享的)的时候,互斥量可以保证一个线程在使用这个临界资源的时候,其他线程不会使用这个资
-
浅谈操作系统原理(五) 存储管理之内存管理和文件管理
发布时间:2020-03-24 11:29存储管理之内存分配和回收存储管理的目的:确保计算机有足够内存来保存和处理数据确保程序可以从可用内存中获取一部分内存来使用确保程序可以归还使用后的内存以供其他程序用内存分配的过程固定分区分配将内存划分为
-
浅谈操作系统原理(四) 操作系统中的线程和进程
发布时间:2020-03-18 14:57什么是操作系统 操作系统是管理计算机软件和硬件的程序。 所以本质上,操作系统是一个程序,软件。 具体功能有配置内存,决定资源供需顺序,控制输入输出设备,提供操作界面 高度概括就是:
-
浅谈操作系统原理(三) 使用python实现内存缓存置换算法
发布时间:2020-03-17 08:36双向链表(double linked list)的原理与实践 首先介绍一下单向链表 单向链表(单链表)是链表的一种 链表上有多个节点,每个节点都包含一个key-value的键值对(或者其他数
-
浅谈操作系统原理(二) 计算机的组成(内存,缓存,输入输出设备,CPU等)
发布时间:2020-03-17 00:10计算机组成 1.计算机的总线 总线就是连接计算机不同设备的一条数据线,这里强调是“一条”。作用是解决不同设备间的通信问题,而且可以简化计算机内部电路