- 博客(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
原创 修炼之道 ---其三
今天的学习到这里就要今天的内容中我们主要关注 **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-10 11:16:58
1766
1
原创 C++11 --- 智能指针
在这篇文章中我们首先介绍了智能指针的思想,之后分别介绍了常用的三种智能指针(unique_ptr, shared_ptr, weak_ptr),最后我们简单的实现了第二个指针,希望大家有所收获!
2024-09-06 14:59:21
1791
1
原创 C++11 --- function 包装器以及 bind 适配器
在这篇文章中,我们主要介绍了 function 包装器以及 bind 适配器,现在我们对可调用对象又有了一个新的认识,希望大家有所收获!
2024-09-04 10:16:22
1064
原创 Git 使用指南 --- 分支管理
⾸先,master分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯⼲活;那在哪⼲活呢?⼲活都在其他分⽀上,当你完成任务时只需要和主分支合并就好啦!
2024-09-02 09:00:42
1122
原创 线程 --- 同步与生产消费者模型
在本文中我们介绍了线程同步的概念,以及基于线程同步的生产消费者模型,还是尝试实现了该模型的核心代码,希望大家有所收获!
2024-08-27 07:44:43
1062
原创 多线程 --- 竞争与互斥
在这篇文章中,我们介绍了多线程竞争以及解决的其中一个方案 — 互斥锁,还讲解了互斥锁的实现原理,希望大家有所收获!
2024-08-25 11:24:51
833
1
空空如也
请教各位,刚学不明白为什么这样
2022-09-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人