- 博客(1443)
- 收藏
- 关注
原创 令人感到有趣的QT笔记
Lambda 表达式让 C++ 代码更简洁和现代化,尤其适合短小的回调和临时操作。在复杂场景中,可以通过灵活的捕获和mutable等特性实现高效的功能封装。
2025-06-09 18:56:13
762
原创 聪明的小孩写的linux笔记
● owner(文件拥有者)文件拥有者可以实现每个用户的隐私权和喜好的工作环境。每个用户都可能有自己的私密文件,可以利用文件拥有者的身份设置权限使其他人无法查阅私密文件● group(文件所属用户组)用户组的最主要功能就是团队开发。例如,当多个团队在同一台主机上开发时,每个团队下的用户可以互相修改文件,但是不能修改不是一个团队下用户的文件。● others(其他人)不属于该文件的文件拥有者和文件所属用户组的用户。
2025-06-09 18:52:40
673
原创 百战面经-小日常
chatServer客户端也是你做的吗?扩展:哪些场景会使遍历过程中迭代器失效。6,map和unordered_map。客户端有没有写完数据库服务器怎么知道?扩展:各种类型转换性能关系(动态静态。聊天怎么保证消息不丢失?文件上传支持断点续传吗?你更倾向于客户端还是服务器?聊天服务器是长连接还是短连接。3,虚函数虚表虚指针。5,vector扩容。
2025-06-09 18:49:47
86
原创 俺的线程池项目的一些东西
您的线程池已经具备了基本的扩容和缩容能力,并且实现方式相对简洁有效。扩容:基于任务积压)和线程上限的判断,动态创建新线程。缩容:基于线程空闲超时和线程下限)的判断,让空闲线程自行退出。这两个机制协同工作,使得线程池能够更好地适应变化的工作负载,在负载高时提供更多并发能力,在负载低时释放资源。这是决定线程池容量最根本的依据。从MODE_FIXED如果你的任务类型相对稳定,或者你对性能有极高的要求,先用MODE_FIXED模式进行性能测试,找到最佳线程数。这能帮助你理解你的应用对线程的需求。考虑使用。
2025-06-08 16:28:10
566
原创 OOP笔记
1,静态全局变量2,extern关键字/*如果一个功能需要多处调用,并且再创建一个函数时,开辟内存,CPU寻址所消耗的时间,大于函数执行的时间,那么此时可以将该功能定义为宏函数*/if(a>b)\{\}\else\{\}\a:bint main()MAX(2,3);//11//21map 在c语言里是映射,python里是字典格式是 a:bmap<int,int>代表是一个整数到整数的映射默认map[1]=0;比如map[1]=2;
2025-06-06 20:33:49
858
原创 tcp报文中时间戳的作用
TCP 时间戳是 TCP 协议中一项关键优化,尤其在现代高速网络中不可或缺。TCP 时间戳是 TCP 选项字段(在 TCP 头部选项中,时间戳占。
2025-05-25 18:47:15
705
原创 TFO快重传
TCP Fast Open(TFO,TCP快速打开)是一种优化TCP连接建立的机制,旨在。(img-AyYaOUbU-1748169936919)]TFO 是 TCP 协议层的重要优化,尤其适合现代互联网的低延迟需求。,特别适用于高频短连接场景(如HTTP请求)。中携带数据,从而跳过传统三次握手的等待时间,提升网络效率。阶段发送数据,减少1个RTT延迟。TFO 在首次连接后生成一个。,否则回退到普通TCP握手。,后续连接时可直接在。
2025-05-25 18:45:59
614
原创 半连接队列和SYN flood攻击
Cookie 计算消耗少量 CPU,且不支持 TCP 高级选项(如窗口缩放)。使用 DDoS 防护设备(如云厂商的 Anti-DDoS 服务)清洗流量。在 TCP 三次握手过程中,当服务端收到客户端的。时不立即分配资源,而是通过哈希计算生成一个。报文,正常客户端会重试,而攻击工具通常不会。:完全避免半连接队列被占满,适合高并发场景。此时,连接尚未完全建立(未收到客户端的。对疑似攻击的 IP,随机丢弃其首个。状态,并将该连接信息存入。),因此称为“半连接”。
2025-05-25 18:44:44
305
原创 为什么SYNFIN要消耗一个序列号
SYN的序列号:SYN报文中的序列号为初始序列号(ISN),标识连接的起始字节位置。FIN的序列号:FIN报文占用一个序列号,表示发送方数据流的结束位置(类似一个虚拟的“终止字节”)。SYN消耗序列号确保ISN的唯一性,而FIN消耗序列号则明确标识连接关闭的边界。SYN/FIN与数据的平等性:所有需要可靠传输的报文(包括控制报文)均通过序列号跟踪状态,避免特殊处理带来的复杂性。无法区分确认目标:例如,若FIN不消耗序列号,接收方无法判断ACK是对FIN的确认还是对之前数据的确认。
2025-05-25 18:42:49
204
原创 为什么不能三次挥手
TIME_WAIT状态的作用:第四次挥手后,主动方进入TIME_WAIT状态(2MSL时长),确保被动方收到最终ACK,并处理网络中残留的延迟报文。三次挥手的问题:若服务器在收到客户端FIN后直接发送FIN+ACK(三次挥手),则客户端无法继续接收服务器后续发送的数据,半关闭功能失效。确认与关闭分离:若ACK与FIN合并为一个报文(三次挥手),一旦丢包,双方无法区分是ACK还是FIN丢失,需同时重传两者,增加协议复杂度。第二次挥手:被动关闭方(如服务器)发送ACK确认,但此时仍可能向客户端发送剩余数据。
2025-05-25 18:42:12
296
原创 为什么不是两次握手
TCP的三次握手是可靠性、效率和安全性的最佳平衡,而两次握手无法满足这些核心需求。在计算机网络中,TCP(传输控制协议)采用。
2025-05-25 18:41:29
375
原创 InnoDB是如何存储索引的
InnoDB作为MySQL最常用的存储引擎,其索引存储设计是数据库性能的核心基础。下面我将从底层存储结构到具体实现细节全面解析InnoDB的索引存储机制。
2025-05-25 16:22:36
615
原创 为什么 MySQL InnoDB 选择 B+tree 作为索引的数据结构?
InnoDB 选择 B+Tree 而非其他数据结构(如 Hash、B-Tree、红黑树等)作为其默认索引结构,是经过多方面权衡后的结果,主要基于数据库系统的特殊需求和硬件特性。
2025-05-25 15:44:24
720
原创 MySQL索引底层数据结构和算法详解
MySQL索引的核心目的是高效定位数据,其底层实现依赖于多种精心设计的数据结构和算法。不同存储引擎和索引类型采用不同的实现方式。
2025-05-25 15:42:59
796
原创 【clienthouse-17】Managing Data
ClickHouse 作为分析型数据库,其数据管理策略与传统的 OLTP 数据库有显著不同。
2025-04-28 09:56:39
197
1
原创 【clienthouse-16】Designing a schema for observability
设计良好的数据模式是可观测性系统高效运行的基础。
2025-04-28 09:55:41
281
原创 【clienthouse-15】Using ClickHouse for Observability
- 服务健康状态SELECTservice,FROM logs。
2025-04-28 09:52:36
270
原创 【clickhouse-13】Avoid Optimize Final
是 ClickHouse 中一个资源密集型操作,理解何时避免使用它对维护系统性能至关重要。
2025-04-28 09:26:08
367
原创 【clickhouse-12】avoid mutations
设计不可变数据模型:优先考虑只追加(append-only)设计利用版本控制:使用版本列而非更新现有行选择合适引擎预计算结果:使用物化视图减少实时计算批量操作:大规模变更使用分区替换而非逐行更新监控影响:密切观察系统表了解Mutations进度通过合理的数据模型设计和这些优化策略,可以显著减少 ClickHouse 中对 Mutations 的需求,从而获得更好的性能和稳定性。
2025-04-28 09:24:51
240
原创 【clickhouse-11】Use Data Skipping Indices where Appropriate
数据跳读索引是 ClickHouse 中一种特殊的索引类型,它通过存储数据的统计信息来帮助查询跳过不相关的数据块,显著提高查询性能。
2025-04-28 09:22:24
382
原创 【clickhouse-10】Selecting an Insert Strategy
在 ClickHouse 中,选择正确的数据插入策略对性能有重大影响。
2025-04-28 09:21:13
269
原创 【clickhouse-8】Minimize and Optimize JOINs
ClickHouse 作为一款 OLAP 数据库,其 JOIN 操作与传统 OLTP 数据库有显著不同。
2025-04-28 09:17:39
292
原创 【clickhouse-7】Use Materialized Views
预计算表:存储查询结果的物理表自动更新:当源表数据变化时自动刷新查询加速:对复杂聚合查询特别有效。
2025-04-28 09:15:06
338
原创 【clickhouse-5】choosing a primary data
在 ClickHouse 中,主键(Primary Key)的选择对查询性能和数据存储效率至关重要。与传统的 OLTP 数据库不同,ClickHouse 的主键有其独特的特点和优化方式。
2025-04-28 09:09:30
251
原创 【clickhouse-4】Updating and Deleting ClickHouse Data
ClickHouse 作为一款面向 OLAP 场景的数据库,其更新和删除操作与传统 OLTP 数据库有显著区别。
2025-04-28 09:05:26
381
原创 【clickhouse-2】Inserting ClickHouse data
ClickHouse 提供了多种数据插入方式,针对不同场景进行了优化。
2025-04-27 17:51:05
402
原创 【clickhouse-1】Create table
数据类型:支持Float32/64StringDateDateTime等默认值DEFAULT:显式指定的默认值:计算列,不能插入值ALIAS:列别名,不实际存储id UInt32,
2025-04-27 17:49:54
367
原创 【百战面试-57】万能引用和完美转发
万能引用是“参数捕获器”,完美转发是“参数传递器”,二者结合实现 C++ 泛型编程的高效性与灵活性。万能引用和完美转发是 C++11 引入的模板编程技术,二者紧密配合,用于实现。以下是它们的核心概念、协作方式及典型应用。
2025-04-13 16:27:22
413
原创 【百战面试-56】为什么https要先非对称再对称加密
(如 RSA 或 ECDHE),在数据传输阶段切换为。(如 AES),这种设计是为了兼顾。HTTPS 在握手阶段使用。
2025-04-13 10:54:43
447
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人