DMA和零拷贝
摘要:一、DMA(直接内存访问) 1.作用:解决大量数据转移过度消耗CPU资源的问题 2.实现原理:在进行I/O设备和内存的数据传输时,数据搬运到内存的工作全部交给DMA控制器,而CPU不再参加与数据搬运相关的事情。 比如在文件传输:原本CPU负责将磁盘控制器缓冲区的内容搬运到内核缓冲区(PageCach
阅读全文
posted @
2024-03-11 16:35
孜孜不倦fly
阅读(150)
推荐(0) 编辑
MySQL实现事务隔离的原理
摘要:一、read view四个字段 create_trx_id:创建该read view的事务的事务id m_ids:创建read view时,当前数据库中的活跃事务(指启动但还没提交的事务) min_trx_id:m_ids的最小值 max_trx_id:创建read view后,下一个事务的id 二
阅读全文
posted @
2024-03-11 11:46
孜孜不倦fly
阅读(19)
推荐(0) 编辑
键入网址到网页显示,期间发生了什么?
摘要:1.解析url 2.生成http请求信息 3.DNS解析(域名解析) 4.TCP连接 5.发送http请求 6.服务器处理请求并返回响应 7.接收响应并显示网页
阅读全文
posted @
2024-03-10 17:18
孜孜不倦fly
阅读(95)
推荐(0) 编辑
MySQL三种日志
摘要:一、undo log(回滚日志) 1.作用: (1)保证了事物的原子性(undo log 和 redo log 记录物理日志不一样,它是逻辑日志。可以认为当delete一条记录时, undo log中会记录一条对应的insert记录,反之亦然,当update一条记录时,它记录一条对应相反的updat
阅读全文
posted @
2024-03-10 16:36
孜孜不倦fly
阅读(38)
推荐(0) 编辑
协程介绍
摘要:协程(Coroutine)是一种用户态的轻量级线程,它可以在单线程内实现多个执行线程的切换和调度,而无需依赖操作系统的线程管理机制(简单来说可以认为协程是线程里不同的函数,这些函数之间可以相互快速切换)。协程通常被称为“轻量级线程”或“用户级线程”。 协程的主要特点和优点包括: 轻量级: 协程的创建
阅读全文
posted @
2024-03-09 15:35
孜孜不倦fly
阅读(48)
推荐(0) 编辑
redis中zset的原理
摘要:一、zset有序集合的原理 如果有序集合元素个数少于128个且元素值小于64字节,使用压缩列表(新版本已经废弃压缩列表改用listpack数据结构了) 如果不满足上述条件,采用跳表作为redis的底层数据结构 二、压缩列表 1.由连续内存块组成的顺序性数据结构 2.根据数据大小和类型的不同进行数据内
阅读全文
posted @
2024-03-08 17:11
孜孜不倦fly
阅读(407)
推荐(0) 编辑
进程和线程的创建过程
摘要:进程和线程的创建过程是不同的,具体如下: 进程的创建过程: 进程的创建过程涉及到写时复制(Copy-on-Write,COW)机制。写时复制是一种可以延迟甚至避免拷贝数据的内存映射方式。新进程的创建过程大致如下: 操作系统为新进程分配必要的资源,如进程控制块等。 父进程的内存数据区域(代码段、数据段
阅读全文
posted @
2024-03-06 15:19
孜孜不倦fly
阅读(25)
推荐(0) 编辑
Redis基本知识
摘要:一、什么是Redis Redis是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,用于存储键值对、缓存、消息队列、分布式锁等。 二、Redis和mencached的区别 相同:都是基于内存的数据库,读写都很快 不同: 1.Redis支持的数据类型更丰富(string、li
阅读全文
posted @
2024-03-02 11:18
孜孜不倦fly
阅读(23)
推荐(0) 编辑
Nginx基本知识
摘要:一、什么是nginx Nginx是高性能的HTTP和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。 二、正向/反向代理 正向代理:nginx作为客户端去访问服务器。 反向代理:nginx作为服务器接收请求。此时反向代理服务器和目标
阅读全文
posted @
2024-03-01 21:19
孜孜不倦fly
阅读(25)
推荐(0) 编辑
linux下搭建boost、muduo、mysql、nginx
摘要:参考博客: 1.boost:C++网络编程 - Boost::asio异步网络编程 - 01- boost库源码编译安装 2.muduo:C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装 3.mysql: sudo apt-get install mysql-s
阅读全文
posted @
2024-02-23 14:57
孜孜不倦fly
阅读(27)
推荐(0) 编辑
CMakeLists常用指令
摘要:#指定cmake最低版本 cmake_minimum_required(VERSION 3.10.2) #指定工程名字和支持的语言 project(test LANGUAGES CXX) #指定cmake模块路径 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/
阅读全文
posted @
2024-02-08 12:00
孜孜不倦fly
阅读(52)
推荐(0) 编辑
MySQL-进阶
摘要:一、MySQL体系结构 1.连接层:一些客户端和连接服务,完成连接处理、授权认证及相关操作 2.服务层:完成大多数核心服务的功能,比如SQL的分析和优化 3.引擎层:负责MySQL中数据的存储和提取 4.存储层:数据存储层,将数据存储在文件系统上,并完成与存储引擎的交互 二、存储引擎(MySQL的核
阅读全文
posted @
2024-02-06 11:41
孜孜不倦fly
阅读(8)
推荐(0) 编辑
MySQL-基础
摘要:1.DQL语句完整语法和执行顺序 select ... from ... where ... group by ... having ... order by ... limit ... 顺序:5123467 2.添加外键 alter table emp add constraint f_key f
阅读全文
posted @
2024-01-29 19:16
孜孜不倦fly
阅读(5)
推荐(0) 编辑
了解云原生
摘要:一.什么是云原生 云原生是一种构建和运行程序的方法。云原生(Cloud Native)是一个组合词,Cloud + Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境。 二.云原生四要素 1.微服务 和微服务相对的就是单体应用。微服
阅读全文
posted @
2024-01-28 12:50
孜孜不倦fly
阅读(12)
推荐(0) 编辑
shell常见语法
摘要:介绍:shell是一个命令行解释器,通过接收应用程序/用户命令,调用操作系统内核。 1.创建一个sh脚本并进行编辑 touch b.sh vim b.sh 2.开头指定解析器并写入内容 #!/bin/bash echo "hello" 3.赋予脚本执行权限并执行 chmod +x b.sh ./b.
阅读全文
posted @
2024-01-27 18:31
孜孜不倦fly
阅读(23)
推荐(0) 编辑
Linux常用命令
摘要:1.列出文件夹信息 ls/ll 2.展示当前工作目录 pwd 3.切换工作目录 cd 4.用户目录 普通用户:/home/name root用户:/root 5.路径 相对路径:不以'/'开头 绝对路径:以'/'开头 6.特殊路径符 当前文件夹:'.' 上级目录:'..' (快速切换到)用户目录:'
阅读全文
posted @
2024-01-26 20:26
孜孜不倦fly
阅读(5)
推荐(0) 编辑
解决没有进入docker的权限问题
摘要:原因: 在Docker默认情况下只有root用户或者在docker组中的用户才有权限访问Docker服务 解决方法: su - root usermod -aG docker username 参考链接:解决没有足够权限访问Docker守护进程的问题permission denied while t
阅读全文
posted @
2024-01-18 22:09
孜孜不倦fly
阅读(82)
推荐(0) 编辑
Ubuntu中用useradd创建用户后无法用su切换过去
摘要:原因: 没有设置密码,没有指定家目录和shell版本,就不能su切换到新用户 解决方法: su - root //切换到root权限 useradd -m -s /bin/bash node1 //-m自动创建home目录,-s指定shell版本 passwd node1 //设置密码 参考链接:U
阅读全文
posted @
2024-01-14 11:51
孜孜不倦fly
阅读(44)
推荐(0) 编辑
ubuntu在使用su - root时提示认证失败
摘要:原因: 在ubuntu中,默认情况下,是没有开启root账户的,因此在输入密码的时候会显示认证失败。 解决方法: 输入sudo passwd root设置密码来激活root权限 参考链接:ubuntu出现su:Authentication failure解决方法
阅读全文
posted @
2024-01-14 11:43
孜孜不倦fly
阅读(335)
推荐(0) 编辑
使用gcc test.c -o app指令报错
摘要:报错信息: /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function _start': (.text+0x24): undefined reference to main'
阅读全文
posted @
2023-08-30 10:44
孜孜不倦fly
阅读(16)
推荐(0) 编辑