博客
分类
标签
归档
友链
关于
更多
博客
分类
标签
归档
友链
关于
更多
luckyZZ的成长博客
主页
标签
分类
源码
高性能短链系统设计
背景:我们手机总会收到商品推销的短信,短信中包含一个商品链接,既然是个网页链接,它一定是http或者https的,但是短信中的链接特点是很短,从链接中看不出任何的信息,而且没有超文本传输协议,不同于常用的URL格式。这就是短链系统。 短链系统 这个链接就是一个短链URL,使用它 短链系统的优点 屏蔽URL中的信息,相对更加安全 让短息更简洁 利于营销 短链系统的核心原理 短链系统的组成...
2025-06-19
Read More
深入理解操作系统的系统调用
系统调用有了操作系统后,程序员写的程序已经不能称之为一个完整的程序了,因为操作系统帮我们做了很多事,我们在写一个只有一个输出语句的main程序时,虽然代码只有一行,但是实际运行却不止一行。因为我们输出语句调用了库函数,而这个库函数是编程语言统一规定的,只要在相同的编程环境中,程序员都可以使用,避免程序员重复造轮子,极大方便了开发。 库函数实际上就是操作系统实现一个功能对程序员开放的接口,...
2025-06-10
操作系统
操作系统
Read More
深入理解操作系统线程和进程机制
线程执行流是什么宏观上:其实就是具有上下文环境的一段代码,可以被调度器调度上处理器执行。执行流是独立的,它拥有自己的栈、寄存器映像、内存等资源,这就是一个执行流的上下文环境。 微观上:是CPU的执行轨迹。 注意:当有线程后,执行流就是调度器的调度单位,就是指线程。 PCB到底是什么PCB是操作系统为每个进程维护的一个数据结构,相当于进程的“身份证”,记录了进程的全部状态和控制信息,操作系统通...
2025-06-09
操作系统
操作系统
Read More
深入理解操作系统的中断机制
中断中断机制的本质:来一个中断信号,调用相应的中断处理程序 中断分类中断分为内部中断和外部中断,内部中断分为异常和软中断,外部中断分为可屏蔽中断和不可屏蔽中断。每个中断都有对应的中断向量号,根据中断向量号调用相应的中断处理函数,理想情况下为每一个可屏蔽的外部中断在CPU上都接一个引脚,但是理论上外设是无上限的,必然扩大了CPU的大小,所以只在CPU上接两个引脚用于外部中断(可屏蔽、不可屏蔽)...
2025-06-09
操作系统
操作系统
Read More
C语言程序是如何被加载进内存的
C语言执行过程预处理——>编译——>汇编——>链接 编译成汇编文件,再由汇编文件生成目标文件(待重定位文件) 编译 gcc -c -o kernel/main.o kernel/main.c -c:编译汇编到目标代码,不进行链接 -o:将输出的文件以指定的文件名来存储,得到main.o文件 main.o文件是目标文件,也是待重定位文件,这个...
2025-06-09
编译原理
编译原理
Read More
消息队列
消息队列消息队列是一种中间件,用于在不同系统和组件之间通信,核心功能是解耦生产者和消费者支持【异步处理】、【服务解耦】、【削峰填谷】 异步处理消息队列的思想是:减少请求等待时间,让服务异步并发处理,提升总体性能。 当一个请求的请求链越来越长时,一个请求得到的响应时间就会越来越大,在大的电商系统中,严重影响用户体验,比如我要买一个冰箱,非得等我下单短信收到,会员注册成功,邮件发送成功后,手机界...
2025-06-08
中间件
中间件
Read More
深入理解C++线程池
发展出线程池的背景 网络通信情景下 **多进程模型:**服务器要支持多个客户端的话,最简单的方式就是为每个客户端创建一个进程处理请求,当服务完成后再销毁进程。因为进程包含一套资源,在创建和销毁的时候需要分配资源和回收资源,极端情况下,当有大量的请求来,系统中给PCB的描述符还不够呢! CPU 将大量的精力用于频繁的创建和销毁进程,还有多少精力给真正需要服务的请求呢? 注意:服务端支持多客户...
2025-05-14
C++
C++
Read More
mysql深度分页影响性能,根本原因是什么?如何优化?
背景在字节一面中,面试官给了一个深度分页的sql语句,给出优化方案,当时没有回答出来,面试后查询各种资料,终于理解了深度分页对mysql性能的影响,并且自己也做了一个小实验,理解了深度分页的原因以及它的优化方案。 limit 查询limit 是查询语句的子句,用来限制查询结果的行数,配合 offset 实现分页查询 limit 的语法 1select colum1,colum2...fr...
2025-05-12
mysql
mysql
Read More
redis 的数据结构
redis的数据结构> string先来看一下 Redis 的官方文档是怎么对 string 数据结构解释的:string 可以存储任何数据,包括二进制、文本、序列化等,限制是值不能超过512MB string的底层数据结构 底层数据结构主要是 SDS(简单动态字符串) 12345struct sdshdr{ int free; // buf[]数组未使用字节的数量 ...
2025-04-28
中间件
中间件
Read More
如何解决Redis热key问题
提出问题在写前面两个博客的时候,都提到了redis的架构(单体、主从、集群分片),针对不同的架构分析了 Redis 的原子性、数据的一致性,显然架构越复杂,保障数据的一致性和和原子性就越复杂,那复杂架构可以解决单体架构和主从架构不能解决的什么问题?这让我想到在面试腾讯的时候,面试官问我的一个问题,Redis怎么解决热 Key 问题? 场景在高并发场景中,百万用户同时抢购一万张满减购物券,re...
2025-04-28
中间件
中间件
Read More
1 / 3
Next