- 博客(51)
- 收藏
- 关注
原创 KVStore 主从同步扩展解析:数据复制与一致性机制
主从同步的核心目标是:Master 负责写入:所有修改类命令(SET、MOD、DEL)在主节点执行;Slave 负责读取:从节点不执行写入,而是通过网络实时接收主节点的命令副本;同步传输机制:Master 将每条操作通过 TCP 发送到 Slave,Slave 解析并执行,不记录日志。设计要点:异步复制线程:主节点维持一个后台线程,不阻塞正常请求。命令缓冲队列:当网络中断时,主节点自动缓存未发送命令。日志隔离:从节点执行复制指令时不写入 journal,避免无限复制循环。
2025-11-08 11:00:09
573
1
原创 TCP 服务器优化:从 “一连接一线程” 到 select/poll/epoll 事件驱动
TCP服务器,事件驱动,select,poll,epoll
2025-10-06 06:03:38
845
原创 Qt入门学习:模型与视图框架
新建项目 mainwindow.cpp中添加如下代码。添加连接 点击树视图中的目录时 在列表中显示该目录。在ui文件中为treeView添加判断鼠标点击的槽函数。在 mainwindow.cpp 中添加如下代码。在 mainwindow.cpp 中实现槽函数。计算文件大小并使用合理的单位。在 ui文件中添加两个视图 并调整位置。创建 model 获取数据为电脑根目录。将包含对象地址和大小的变量显示在状态栏中。向model中添加树视图和列表视图。创建保存当前对象文件地址的变量。
2025-06-08 21:38:30
635
原创 Qt入门学习:GUI编程
在程序运行文件的同目录下创建 mystyle.css 文件添加如下代码QWidget {font: 12pt "新宋体";在 main.cpp 中运行结果在 mystyle.css 中添加按钮字体颜色和背景颜色的代码hover为鼠标在按钮上时的显示,!hover为默认状态下的显示hover {运行结果默认状态鼠标在按钮上时在 mystyle.css 中添加调整按钮轮廓的代码运行结果。
2025-06-07 03:26:34
838
原创 Qt入门学习:初识Qt
创建自定义的发件类sender.hQ_OBJECTpublic:private:public:signals:sender,cpp{}m_age++;创建自定义的收件类receiver.hQ_OBJECTpublic:{}在 main.cpp 中引用头文件 并创建对象输出测试:在将发件与收件连接前,没有输出结果,连接后正常输出,断开连接后没有输出//无输出 m_age = 11//有输出 m_age = 12//有输出 m_age = 13。
2025-06-04 04:45:20
837
原创 C++进阶学习:STL常用算法
概述:算法主要由头文件 <algorithm> <functional> <numeric> 组成<algorithm> 是所有STL文件中最大的一个 范围涉及到 比较 交换 查找 遍历 复制 修改 等<numeric> 体积很小 只包括几个在序列上面进行简单数学运算的模板函数<functional> 定义了一些模板类 用于声明函数对象。
2025-05-13 06:08:24
955
原创 C++进阶学习:STL函数对象
概念:重载函数调用操作符的类 其对象常称为函数对象函数对象使用重载的()时 行为类似函数调用 也成为仿函数本质:函数对象(仿函数)是一个类 而不是一个函数。
2025-05-12 05:35:19
304
原创 C++STL实现简易项目--员工分组
公司招聘了10个员工(ABCDEFGHIJ) 10名员工进入公司后 需要指派员工在哪个部门工作。分组后 将员工部门编号作为 key 值 具体员工作为 value 放入到 multimap 中。通过 multimap 进行信息的插入 key(部门编号) value(员工)遍历 vector 容器 取出每个员工 进行随机分组。创建10名员工 放到 vector 中。员工信息有:姓名 工资组成;部门分为:策划 美术 研发。随机给10名员工分配部门和工资。
2025-05-12 04:39:29
208
原创 C++进阶学习:STL常用容器--map/multimap容器
map 中所有元素都是 pairpair 中第一个元素为 key (键值) 起到索引运用 第二个元素为 value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap 属于关联式容器 底层结构是用二叉树实现优点:可以根据 key 值快速找到 value 值map 和 multimap 的区别:map 中不允许有重复的key值multimap 中允许有重复的key值。
2025-05-11 06:26:54
171
原创 C++进阶学习:STL常用容器--set/multiset容器
特点:所有元素都会在插入时自动排序本质:set/multiset 属于底层结构通过实现set 和 multiset 的区别set 不允许容器中有相同的元素multiset 允许容器中有相同的元素。
2025-05-10 04:10:03
315
原创 C++进阶学习:STL常用容器--list容器
功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构 数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列组成结点的组成:一个是存储数据元素的另一个是存储下一个结点地址的优点:可以对任意位置进行快速的插入或删除操作采用动态存储分配 不会造成内存浪费和溢出缺点:遍历速度比数组慢占用空间大list 容器的重要性质:插入和删除操作都不会造成原有 list 容器迭代器的失效STL中的链表是一个双向循环链表。
2025-05-09 07:31:19
628
原创 C++进阶学习:STL常用容器--queue容器
queue 是一种先进先出的数据结构 有两个出口队列容器允许从一端新增元素 从一端删除元素队列中只有队头和队尾可以被外界使用 所以不允许遍历操作。
2025-05-08 07:06:31
238
原创 C++进阶学习:STL常用容器--stack容器
stack 是一种先进后出的数据结构 只有一个出口不允许有遍历行为可以判断是否为空可以返回元素个数。
2025-05-08 06:46:15
1494
原创 C++STL实现简易项目--评委打分
有5名选手 选手 A B C D E 10个评委分别对每一名选手打分 去除最高分 去除最低分 取平均分。2、遍历 vector 容器 取出来每一名选手 执行for循环 把10个评委的打分存到 deque 容器中。deque 容器便于头部和尾部数据的读写 适合去除最高分和最低分的逻辑。3、sort算法对 deque 容器中分数排序 去除最高分和最低分。vector 容器便于数据的读写 适合存放数据。4、遍历 deque 容器 累加得总分。代码示例 详见注释。
2025-05-08 03:30:54
166
原创 C++进阶学习:STL常用容器--deque容器
功能描述:可以对头端进行插入或删除操作deque 与 vector 的区别:vector 对于头部的插入删除效率低 数据量越大 效率越低deque 相对而言 对头部的插入删除操作比 vector 快vector 访问元素的速度比 deque 快deque 容器的迭代器也支持随机访问deque 内部工作原理:deque 内部有中控器 维护每段缓冲区中的内存 缓冲区中放真实数据中控器维护的是每个缓冲区的地址 使得使用 deque 时像一片连续的数据。
2025-05-07 06:11:39
270
原创 C++进阶学习:STL常用容器--vector容器
功能:vector 容器结构与数组非常相似 也被称为单端数组与普通数组的区别:数组是静态空间,而 vector 可以动态扩展动态扩展:并不是在原空间之后续接新空间 而是找更大的空间 然后将原数组拷贝到新空间 释放原空间vector 容器的迭代器支持随机访问。
2025-05-05 06:36:59
333
原创 C++进阶学习:STL常用容器--string容器
string 是C++风格的字符串 本质上是一个类string 和 char * 的区别:char * 是一个指针string 是一个类 类内部封装了 char * 管理这个字符串 是一个 char * 型的容器特点:string 类内封装了很多成员方法例如:查找 find 拷贝 copy 删除 delete 替换 replace 插入 insertstring 管理 char * 所分配的内存 不用担心赋值越界和取值越界等问题 由类内部进行负责。
2025-05-04 06:17:03
276
原创 C++进阶学习:模板
C++中的模板属于泛型编程工具 允许编写与数据类型无关的通用代码编译器会根据调用时的具体类型自动生成对应的代码C++中的一种编程思维被称为范式编程 主要利用的技术就是模板C+=提供两种模板机制 函数模板和类模板。
2025-04-30 05:26:30
1037
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅