自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器

本文介绍了一个基于Reactor模型的高性能HTTP服务器组件实现方案。该项目分为SERVER模块和协议模块两大模块,采用主从Reactor多线程架构,主Reactor负责监听新连接,从Reactor处理IO事件。SERVER模块包含Buffer缓冲、Socket操作、Channel事件管理、Connection连接管理、Acceptor监听管理等子模块,通过Connection实现完整的套接字生命周期管理。项目采用One Thread One Loop思想,每个线程独立处理事件循环,同时支持自定义协议模块

2025-05-29 23:50:20 5652 69

原创 Redis:主从复制

本文介绍了Redis主从复制的配置、拓扑结构及原理。配置通过`slaveof`命令或配置文件实现。拓扑包括一主一从、一主多从和树形结构。原理涵盖全量复制、部分复制和实时复制。全量复制在首次连接时同步所有数据,部分复制用于网络中断后的数据补发,实时复制通过TCP长连接保持数据一致性。主从复制可解决单点问题,但存在从节点无法自动升级为主节点的缺点。

2025-07-05 19:03:00 742 3

原创 Redis:事物

Redis事务类似MySQL事务,但无回滚机制,不保证一致性、隔离性和持久性。其通过“事务队列”批量执行操作。主要命令有MULTI开启事务、EXEC执行事务、DISCARD放弃事务、WATCH监控key防冲突、UNWATCH取消监控。

2025-06-26 10:37:01 999 2

原创 Redis:持久化

Redis有两种持久化方式:RDB和AOF。RDB是内存快照,文件紧凑恢复快,但不适合实时持久化;AOF记录修改命令,有重写机制压缩文件,可实时持久化但恢复慢。两者都用fork创建子进程进行持久化,减少对主进程影响。

2025-06-25 15:09:05 952 2

原创 ProtoBuf:通讯录4.0实现 & 序列化能⼒对⽐验证

本文介绍了使用ProtoBuf实现网络通讯录的客户端和服务端交互,通过cpp-httplib库搭建HTTP服务。客户端可新增、删除、查询联系人,服务端提供相应功能并持久化数据。同时,对比ProtoBuf和JSON的序列化性能,ProtoBuf在编码解码速度和内存占用上表现更优。

2025-06-22 16:38:54 1321 1

原创 ProtoBuf:proto3 语法详解

本文详细介绍了ProtoBuf的proto3语法,包括字段规则、消息类型定义与使用、枚举类型、Any类型、oneof类型、map类型等。通过通讯录示例,展示了如何逐步升级版本,实现序列化、反序列化、新增字段等功能。同时探讨了ProtoBuf的默认值、更新消息规则、保留字段、未知字段、前后兼容性以及常用选项等重要概念。

2025-06-21 17:25:24 970 4

原创 Redis:渐进式遍历

本文介绍了 Redis 的渐进式遍历命令 SCAN,解决了直接使用 keys 命令可能导致的阻塞问题。通过游标分批次遍历键,支持模式匹配和类型筛选。同时,文中提到在遍历过程中避免对数据进行增删改操作,以防出现遗漏。

2025-06-12 20:56:17 1007 6

原创 Redis:set类型和zset类型

本文介绍了 Redis 的 Set 和 Zset 类型,包括命令、内部编码及使用场景。Set 是无序集合,支持交并差集操作;Zset 是有序集合,支持按分数排序和范围查询,适用于排行榜等场景。

2025-06-11 20:26:45 887 2

原创 ProtoBuf:快速上⼿

文章介绍了ProtoBuf的基本概念、使用流程及在C++中的应用,包括创建.proto文件、编译生成C++代码、序列化与反序列化操作。

2025-06-10 19:18:49 604 3

原创 初识 ProtoBuf 与安装

文章介绍了序列化和反序列化的概念,ProtoBuf的特点、使用方法及在Windows和Linux下的安装步骤。

2025-06-08 15:30:38 1618 64

原创 Redis:List类型

文章介绍了Redis的List数据类型及其命令(如LPUSH、RPUSH、LRANGE等),内部编码方式(ziplist和linkedlist),以及使用场景(如消息队列、分频道消息队列、微博Timeline)。

2025-06-07 17:16:28 1349 10

原创 Redis:Hash数据类型

文章介绍了Redis的哈希数据类型及其命令(如HSET、HGET、HDEL等),内部编码方式(ziplist和hashtable),以及使用场景(如缓存用户信息)。

2025-06-07 10:45:24 846 5

原创 Redis:string数据类型

文章介绍了Redis字符串类型及其命令(SET、GET、MGET、MSET等),内部编码(int、embstr、raw),以及使用场景(缓存、计数、共享会话、手机验证码)。

2025-06-05 09:24:20 1096 1

原创 Redis:常用数据结构 & 单线程模型

文章介绍了Redis的常用数据结构(如string、hash、list、set、zset)及其内部编码方式(如raw、int、embstr、hashtable、ziplist等),并分析了Redis单线程模型的工作原理及其优缺点。

2025-06-03 19:31:32 1061 7

原创 Redis:安装与常用命令

文章介绍了Redis的安装、配置、启动、常用命令(如`set`、`get`、`keys`、`exists`、`del`、`expire`、`ttl`、`type`)及删除策略,强调了`keys *`的潜在风险和Redis作为缓存的重要性。

2025-06-01 15:35:30 947 6

原创 Redis:功能特性和应用场景

Redis是使用内存进行存储数据的中间件,支持持久化与集群,适用于缓存、会话等场景。与MySQL互补,提供快速数据访问和高效架构设计。

2025-05-31 15:57:19 1880 72

原创 初识 Redis :分布式系统

分布式架构从单机演进至微服务,通过集群、分库、读写分离等方案解决高并发与大数据问题,体现"分而治之"和"开源节流"的设计理念。

2025-05-31 11:24:02 970 5

原创 RPM 包制作备查 &SRPM 包编译

本文介绍了RPM包制作原理和步骤,包括准备环境、设置目录结构、创建spec文件、编译源码、安装文件、清理和生成RPM包。通过详细步骤和命令,指导用户从源码编译生成RPM包,并提供常见问题解决方案。

2025-05-14 11:08:48 2060 89

原创 【Qt】美学:QSS的艺术之旅

本文深入探讨了 Qt 的 QSS(Qt Style Sheets),详细介绍了 QSS 的基本语法、选择器、样式属性以及如何通过 QSS 和绘图 API 实现自定义控件样式。通过丰富的示例,展示了如何使用 QSS 创建美观的界面,包括按钮、复选框、单选框、输入框、菜单栏等,并讨论了 QSS 的局限性和实际应用中的注意事项。

2025-05-04 15:04:55 1663 76

原创 【Qt】网络

本文主要介绍了Qt网络编程的相关内容,包括UDP和TCP Socket的使用方法、HTTP客户端的实现,以及音视频播放功能的开发。通过具体的代码示例,展示了如何实现回显服务器和客户端、发送HTTP请求以及播放视频等功能。

2025-05-01 09:54:33 3521 64

原创 【Shell 脚本入门】轻松上手的实战指南

本文全面介绍了 Shell 脚本开发的基础知识,包括 Shell 的定义、常见类型、脚本编写规则、变量使用、特殊变量、字符串操作以及环境变量设置等内容,适合初学者入门学习。

2025-04-28 18:45:45 2963 63

原创 【Qt】 多线程

本文介绍了Qt多线程的实现与应用,包括QThread的常用API、线程安全机制(如互斥锁、条件变量、信号量等),并通过倒计时页面和多线程自加案例展示了线程的使用方法。

2025-04-25 22:23:41 1653 20

原创 【Qt】文件

本文介绍了Qt框架中文件操作的相关知识,包括文件读写类QFile的使用方法、文件和目录信息类QFileInfo的功能,以及如何通过QFileDialog实现文件选择和目录操作等功能。

2025-04-25 22:16:24 1651 5

原创 【Qt】事件

本文详细介绍了Qt中的事件处理机制,包括事件的类型、处理方法(如重写事件函数、使用事件过滤器等),以及如何通过事件实现各种交互功能。

2025-04-23 19:12:30 1320 42

原创 Git 远程操作全攻略:从基础到实战

本文详细介绍了Git远程操作的全流程,包括理解分布式版本控制系统、远程仓库的使用、多人协作开发模式以及标签管理等关键知识点。通过实际案例,展示了如何高效地进行代码管理与团队协作,助力开发者提升工作效率。

2025-04-23 18:59:51 2927 65

原创 【Qt】QDialog类

本文详细介绍了Qt中QDialog类的使用,包括模态与非模态对话框、自定义对话框的创建,以及QMessageBox、QColorDialog、QFileDialog、QFontDialog和QInputDialog等常用内置对话框的实现方法和应用场景。

2025-04-22 08:51:02 4325 71

原创 【Qt】QMainWindow类

本文详细介绍了Qt中QMainWindow类的使用,包括菜单栏、工具栏、状态栏、浮动窗口等组件的创建与配置,并通过综合案例展示了如何构建功能丰富的主窗口界面。

2025-04-20 11:16:45 2462 87

原创 Git 进阶之路:高效协作之分支管理

本文详细介绍了Git的分支管理功能,包括分支的创建、切换、合并、删除以及解决冲突的方法。同时探讨了分支管理策略,如使用--no-ff参数保留分支历史,以及在开发中如何高效利用分支进行功能开发和bug修复。

2025-04-18 17:28:43 3312 65

原创 【QT】常用控件 【多元素类 | 容器类 | 布局类】

本文详细介绍了Qt框架中常用的多元素类控件(如QListWidget、QTableWidget、QTreeWidget)、容器类控件(如QGroupBox、QTabWidget)以及布局类控件(如QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout)。通过代码示例和图形化界面操作,展示了如何使用这些控件创建高度定制化的用户界面,并强调了布局管理器在界面设计中的重要性。

2025-04-16 09:22:31 7205 76

原创 【QT】 常用控件【输入类】

本文详细介绍了Qt框架中输入类控件的使用方法和核心功能。首先讲解了单行输入框QLineEdit和多行输入框QTextEdit的属性、信号及应用场景,如正则表达式验证输入、获取输入内容等。接着介绍了下拉框QComboBox、微调框QSpinBox、日期时间选择框QDateEdit和QTimeEdit等控件的使用技巧和信号槽机制。最后通过具体示例展示了如何使用旋钮QDial和滑动条QSlider实现界面交互功能,如调整窗口透明度和大小等。

2025-04-14 16:41:17 2240 80

原创 【Qt】常用控件【显示类】

本文详细介绍了 Qt 框架中常用的显示类控件,包括 QLabel、QLCDNumber、QProgressBar 和 QCalendarWidget。每个控件的核心属性和使用方法都通过示例代码和图形界面展示,帮助读者快速理解和应用。

2025-04-13 21:05:36 1615 63

原创 【Qt】常用控件【按钮类】

本文详细介绍了 Qt 框架中的按钮类控件,包括 QPushButton、QRadioButton 和 QCheckBox。文章讲解了这些控件的属性、信号与槽的连接方法,并通过实际代码示例展示了如何使用这些控件。

2025-04-11 16:41:46 1908 64

原创 【QT】QWidget 概述与核心属性(API)

本文主要介绍了 Qt 框架中控件(Widget)的使用和相关属性设置。详细介绍了 QWidget 的核心属性,如控件的可用性(Enabled)、坐标系(Geometry)、窗口标题(windowTitle)、窗口图标(windowIcon)和窗口透明度(windowOpacity)等,并通过具体代码示例展示了如何操作这些属性。

2025-04-09 20:12:52 4618 79

原创 【C++项目】从零实现RPC框架「四」:业务层实现与项目使用

本文详细介绍了实现RPC框架的过程,包括服务端和客户端的各个模块实现,如RPC路由、服务注册与发现、发布订阅机制等。通过代码示例展示了如何整合封装Server和Client,并提供了简单的RPC使用示例、基于服务注册发现的RPC调用以及基于广播的发布订阅功能的实现方法。

2025-04-02 20:50:36 2486 92

原创 【C++项目】从零实现RPC框架「三」:项⽬抽象层实现

本文详细介绍了如何从零实现一个 C++ RPC(远程过程调用)框架,包括通信抽象、消息抽象、通信实现、以及消息分发器的实现。通过系统化的代码示例,展示了如何构建一个高效、灵活且可扩展的 RPC 框架。

2025-03-31 18:29:46 1475 81

原创 【Linux】高性能网络模式:Reactor 反应堆模式

本文详细介绍了 Linux 下的 Reactor 模式,包括其核心思想、组成组件以及基于 Reactor 模式的高性能网络编程实践。通过封装 epoll、Connection、Reactor 和 Listener 等关键模块,实现了一个基于事件驱动的网络服务器框架。文章还探讨了多路转接对写的处理策略和最佳实践,强调了“一个线程一个事件循环”的设计原则,以简化并发管理并提高性能。

2025-03-29 15:18:07 4479 91

原创 Visual Studio Code 无法打开源文件解决方法

本文介绍了在VS Code中解决“无法打开源文件”提示的方法。通过修改c_cpp_properties.json文件中的includePath字段,添加头文件路径,即可解决该问题。

2025-03-24 20:06:17 4370 98

原创 【Linux】I/O 多路转接:select & epoll 技术剖析

本文详细介绍了 Linux 下的 I/O 多路复用技术,包括 select、poll 和 epoll 的原理、优缺点及使用场景。select 和 poll 适用于少量连接,而 epoll 在处理大量并发连接时表现出色,文章通过示例代码展示了如何使用这些技术实现服务器程序,强调了根据实际需求选择合适的 I/O 模型的重要性。

2025-03-22 13:27:12 2968 100

原创 【Linux】五种 IO 模型与非阻塞 IO

本文深入探讨分析了五种I/O模型(阻塞、非阻塞、信号驱动、多路复用、异步I/O)的特点与适用场景,并通过实例代码展示了如何实现非阻塞I/O操作。

2025-03-16 13:00:53 2329 112

原创 【C++项目】从零实现RPC框架「二」:项⽬设计

本文概述了RPC分布式系统的设计,涵盖基本概念、服务注册发现机制及负载均衡,并详细介绍了服务端与客户端的功能模块,最后展示了系统的三层架构设计。

2025-03-14 00:15:49 1296 94

空空如也

空空如也

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

TA关注的人

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