自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BUG制造机的博客

在积累知识的同时,希望我的博客能对你有所帮助。

  • 博客(75)
  • 收藏
  • 关注

原创 Redis 的集群 --- 数据分开扛

感觉现在查到的资料都没上一章内容中我们介绍到了 **哨兵** 来保证我们主机在发生故障时能够及时地选出一个新的主机,但是哨兵地加入只是提供了 **高可用性** 和 **故障转移**,并没有真正的提升架构的性能。如果不断地加入新的数据的话,主机的压力会很大,一方面是内存占用,一方面是同步数据到从机有很详细的介绍一个结点故障转移的过程,容我再看看。

2025-02-16 21:27:15 925

原创 Redis 的哨兵机制 --- 兵王是这样选出的

上篇文章我们说到过,*Redis* 使用了主从复制的机制来保证了相对的高可用,以及使用读写分离缓解了主机的压力。但是,如果我们的主机如果因为各种因素掉线了,此时从机不会主动的去上位当老大,必须我们手动的去提升从机。

2025-02-14 22:38:14 570

原创 Redis 的主从复制 --- 小弟跟着大哥走

主从复制比起单设备好了许多,实现了相对的高可用,并且缓解了主机的压力。但是还是存在一系列问题,最严重的就是主机故障后,不能智能的去替代主机的位置,导致系统不能进行写入操作,怎么解决呢?

2025-02-13 16:00:17 585

原创 Redis 的持久化策略原来是这样

**Redis** 作为 **内存** 级别的数据库,如果遭遇各种预想不到的突发情况导致自己的数据丢失了,这是灾难性的!所以这时,持久化策略就显得尤为关键了。能保障即使遭遇了突发情况,也可以将数据库恢复到某个时刻的状态。

2025-02-12 12:01:15 670

原创 原来是这样的 Nginx

*Nginx** 是一款高性能的 **Web** 服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中。据调查的统计([维基百科查滴](https://zh.wikipedia.org/wiki/Nginx)),**Nginx** 在全球网站市场份额为 34.95%,位居第一,领先于 **Apache** 的 24.63%;我们国家众多知名网站如百度、京东、新浪、网易、腾讯和淘宝等均使用 **Nginx** 作为其 **Web** 服务器。

2025-02-04 20:34:04 761

原创 C++ 新特性实现 ThreadPool

在之前我们实现过线程池,但是非常基础。答题思路就是实现一个安全的队列,再通过 ThreadPool来管理队列和线程,对外提供一个接口放入需要执行的函数,但是这个函数是无参无返回值的。参数的问题我们可以使用 bind 来封装,但是函数返回值的问题需要我们解决。

2025-01-27 18:27:07 680

原创 原来 HTTPS 是这样的工作的?

HTTP协议确实很强大,但是他有一个很大的问题---**明文传输数据**。这对于某些数据非常敏感的场景来说是极其不能忍受的,这有非常大的安全隐患。为了解决这个问题,产生了HTTPS协议。他在HTTP的基础上引入了SSL/TLS加密协议来提供安全的通信保障。

2025-01-19 21:34:38 837

原创 HTTP / 2

在之前的文章中我们介绍过了HTTP/1.1协议,现在再来认识一下迭代版本2。了解比起1.1版本,后面的版本改进在哪里,特点在哪里?话不多说,开始吧

2025-01-18 21:25:47 1212

原创 修炼之道 ---其四

许久不更了,后面空闲的日子每天坚持一更,加油加油!

2024-12-26 22:07:37 1168

原创 修炼之道 ---其三

今天的学习到这里就要今天的内容中我们主要关注 **C++** 和 **操作系统**,在昨天的内容中我们介绍了常考点 **虚函数、多态** 以及 TCP 协议的 **三次握手和四次挥手**。今天继续加油!结束了,前面的知识也要隔段时间复习,温故知新呀!

2024-12-16 23:11:41 760

原创 修炼之道 --- 其二

在这篇文章中的内容,我们主要关注 **C++** 和**计算机网络** 方面,在今天的文章中可有一个重量级嘉宾 **虚函数**。在回答问题的同时,引发了一些我的疑问。有些超出我能力的问题我可能不会解释那么好,欢迎大家指正!

2024-12-15 21:00:44 1079

原创 修炼之道 --- 其一

大家对面试中的面经八股文是怎样的看法呢,从他的名字 **八股文** 就可以看出来大家可能并不喜欢他,八股文一般是 **死板、浮于表面、不重实际** 的特点。但是,我们需要通过辩证的角度来看待一个事情,不能单方面来定性!

2024-12-14 20:03:20 956

原创 HTTP multipart/form-data 请求

最近在写项目的过程中有一个需求是利用 **HTTP** 协议传输图片和视频,经过查询方法相应的方法发现使用 `multipart/form-data` 的方式,这是最常见处理二进制文件的表单编码类型。

2024-12-05 22:09:11 2702

原创 C++中的类型转换

编程时,无论是对基本数据类型的处理,还是在复杂类层次结构中的对象操作,类型转换都不可避免。很多时候,我们都是使用默认的隐式类型转换的方式,这种方式很多时候不是那么安全。这篇文章中,将全面的介绍类型转换 --- 隐式转换和显式转换,让我们开始

2024-11-26 10:43:09 878 2

原创 原来这就是自旋锁和互斥锁?

所以说,选择使用哪种锁,取决于具体的应用场景和性能要求。在锁竞争较少、锁持有时间短的情况下,自旋锁可能更为高效;而在锁竞争较为激烈、锁持有时间较长时,互斥锁通常是更好的选择。

2024-11-11 15:36:58 575 2

原创 Linux 抓包工具 --- tcpdump

在这篇文章中,我们介绍了抓包工具tcpdump的使用,并且还实践了利用该工具抓取三次握手,四次挥手过程中数据包的信息。

2024-11-10 18:53:45 2859

原创 Any 的原理以及实现

在这篇文章中,我们介绍了any的使用,以及具体的实现。any的实现离不开多态的思想,通过多态,才能够动态地存储不同类型的数据,而不需要在编译时确定数据的具体类型。

2024-11-08 22:19:13 993

原创 C++ 手写常见的任务定时器

今天的内容简单地向大家介绍了三种任务定时器方式,遍历方式最为简单,效率也比较低,小堆方式处理大数据集有优势,数据量少了消耗反而还多了,最后一种时间轮是比较全面的一种,但是要确定合适的时间范围。希望大家有所收获!

2024-11-04 19:50:52 1605

原创 多路转接 --- poll 和 epoll

在这一篇文章中我们介绍了Poll和Epoll,并讲解了两者在底层的大致逻辑,以及Epoll高效的原因。

2024-10-21 22:27:05 995

原创 五种 I/O 模型

在本篇文章中我们首先了解了为什么大量的 IO 操作浪费 CPU 资源?之后介绍了 五种 IO 模型,特别是着重介绍了 多路复用IO,希望大家有所收获!

2024-10-19 20:04:19 999

原创 网络层协议 --- IP

每一个设备接入互联网时,都会被分配一个或多个唯一的IP 地址,用于在网络上设别和定位该设备。这句话放在学习本章内容之前肯定是没问题的,但是在认识了NAT技术之后就要打个问号了。IP地址(IPv4地址)由32位二进制数(8个字节)来表示:但是这种表示方式非常不便于我们阅读比较,于是将每一个字节以十进制数表示:现在看起来舒服多了,为了避免数字混淆在一起,最后加上来分割:这就变成了我们熟悉的表达方式了,便于我们查看以便于我们和其他的IP比较。网段划分,简单来说,就是将一个大的IP。

2024-10-08 19:22:19 1599

原创 TCP --- 滑动窗口以及拥塞窗口

这篇文章中,我们主要介绍了使用滑动窗口来控制流量,拥塞窗口解决拥塞问题,最后介绍了面向字节流,希望大家有所收获!

2024-10-04 13:04:10 3094

原创 TCP --- 确认应答机制以及三次握手四次挥手

在这一篇文章中,我们介绍了TCP的协议段格式,以及保证其可靠传输的确认应答机制,重传机制,着重介绍了三次握手建立连接,四次挥手断开连接的过程,希望大家有所收获!

2024-10-03 11:42:22 1253 1

原创 传输层协议 --- UDP

在这篇文章中我们了解了UDP,感觉内容不是很多,也比较好理解。但是在之后学习TCP可是截然不同了,毕竟后者为了可靠可是下了不少功夫,希望大家这篇文章有所收获!

2024-09-26 12:23:23 980

原创 应用层协议 --- HTTP

在互联网世界中,HTTP(HyperTextTransferProtocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本(如HTML文档)。经过前面的的铺垫学习,我们知道了只要是协议,双方就达成了一定的约定!在这里还需要注意重要的一点是,HTTP的底层是基于TCP进行数据传输的!在这篇文章中我们简单认识了HTTP协议的组成,并且已经简单的实现了浏览器访问云服务器,返回相应数据的功能,希望大家有所收获!

2024-09-25 22:19:32 1821 1

原创 序列化和自定义协议

在上一篇文章中,我们介绍了Socket 编程,已经可以简单地使用该方法来进行服务端和客户端的数据了。在这篇文章中我们将在此基础上学习序列化和反序列化,以及在应用层上自定义协议。

2024-09-24 09:11:28 1057

原创 计算机网络 --- Socket 编程

协议就是一种约定,规范了双方通信需要遵循的规则、格式和流程,以确保信息能够被准确地传递、接收和理解。在这篇文章中我们将介绍怎么进行跨网络数据传输,在这一过程中相信大家肯定可以加深对协议的理解。

2024-09-19 15:40:00 1334

原创 计算机网络 --- 初识协议

在这一篇文章中我们认识了协议,并且再次学习了数据在局域网下或者是跨局域网下的传播,希望大家有所收获!

2024-09-17 16:43:18 1204

原创 进程间关系和守护进程

在这篇文章中,我们介绍了进程的组以及会话的概念,还实现了一下守护进程功能的函数。

2024-09-16 18:01:13 719

原创 计算机网络 ---如何寻找目标计算机

在没有产生网络之前,单个主机就像汪洋大海之间的一个孤岛,和其他主机之间没有任何联系。但随着需求的产生,免不了两台主机之间需要产生交流(传送数据等)。离得近的两台主机之间搭一根网线就能够解决,但是如果两台主机之间的距离隔得十分远呢?

2024-09-10 11:16:58 1766 1

原创 C++11 --- 线程库以及相关库的使用

在本篇文章中大致介绍了我们在C++11中使用线程时大部分会使用到的函数,希望大家有所收获!

2024-09-07 09:16:37 929

原创 C++11 --- 智能指针

在这篇文章中我们首先介绍了智能指针的思想,之后分别介绍了常用的三种智能指针(unique_ptr, shared_ptr, weak_ptr),最后我们简单的实现了第二个指针,希望大家有所收获!

2024-09-06 14:59:21 1791 1

原创 理解内存对齐

在这里我们简单说了一下问什么需要内存对齐?以及内存对齐的相应场景,希望大家有所收获!

2024-09-04 19:12:29 1077

原创 C++11 --- function 包装器以及 bind 适配器

在这篇文章中,我们主要介绍了 function 包装器以及 bind 适配器,现在我们对可调用对象又有了一个新的认识,希望大家有所收获!

2024-09-04 10:16:22 1064

原创 C++11 --- 可变参数模板

在这篇文中我们首先介绍了在C 语言中的可变参数,之后简单讲解了C++中的可变参数模板的使用以及应用。

2024-09-03 13:41:04 1121

原创 Git 使用指南 --- 远程仓库

在这篇文章中,我们将理解分布式版本控制系统,学习远程仓库与本地仓库的交互操作,掌握多⼈协作开发模式。

2024-09-02 15:20:25 1164 1

原创 Git 使用指南 --- 分支管理

⾸先,master分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯⼲活;那在哪⼲活呢?⼲活都在其他分⽀上,当你完成任务时只需要和主分支合并就好啦!

2024-09-02 09:00:42 1122

原创 Git 使用指南 --- 版本管理

在这篇文章中我们介绍了Git的版本管理以及其背后的部分原理,希望大家有所收获!

2024-09-01 14:56:49 1540 1

原创 线程 --- 同步与生产消费者模型

在本文中我们介绍了线程同步的概念,以及基于线程同步的生产消费者模型,还是尝试实现了该模型的核心代码,希望大家有所收获!

2024-08-27 07:44:43 1062

原创 多线程 --- 竞争与互斥

在这篇文章中,我们介绍了多线程竞争以及解决的其中一个方案 — 互斥锁,还讲解了互斥锁的实现原理,希望大家有所收获!

2024-08-25 11:24:51 833 1

空空如也

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

TA关注的人

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