- 博客(41)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 从输入baidu.com到得到网页的全过程?
这一步是在应用层上完成的。因为应用层的下一层是传输层,tcp 报文里需要用到 源ip 和 目标ip,所以在将 http 报文下放到传输层之前需要先进行 DNS,域名解析。在收到客户端的请求之后,服务端会返回对应的响应数据,最终由浏览器进行渲染也就得到了我们可以看到的页面了。在到达了服务器的时候,还会经历一次从物理层上传到应用层的过程,这个其实就是请求出客户端发出的逆过程嘛。这个过程,主要是会经历一些交换机、路由器之类的,最终请求会被路由到服务端。其实呢,这个过程就包括了请求和响应的全过程了,
2024-01-24 15:16:43
629
原创 课设头疼?编程任务烦恼?让我帮你解决!
我是一位热爱编程的大学生,熟悉多种编程语言,曾先后到多家互联网大厂实习,拥有丰富的实践经验。如果你正在为实验程序、课设或其他编程任务烦恼,我可以帮你解决问题,让你告别编程的困扰!已经帮助多位小伙伴成功完成了他们的编程任务,收到了很多满意的反馈。你的满意是我的最大动力!本人大学生身份,深知同龄人的学业压力,能够更好地理解你的需求。丰富的编程经验,擅长解决各种编程难题。严格保密客户信息,确保你的隐私安全。🚀 专业接单,解救你的编程困扰!“你的程序,我的责任!
2024-01-24 15:12:54
465
原创 什么是缓存雪崩、缓存击穿、缓存穿透?
可以看到我们解决缓存雪崩的核心点就是避免大量请求同时打到后端数据库,造成数据库压力骤增,从而避免了雪崩情况的发生。但是缓存穿透就不一样了,它是缓存没有该数据,数据库也没有该数据的。缓存雪崩是指大量的缓存数据几乎在同一时间内失效,而这时候又刚好碰上大量请求过来获取该数据,缓存击穿和缓存雪崩很像,它是指一个或者几个缓存数据失效,大量请求过来获取该数据,导致缓存没有击中,所有的请求都直接打在了我们的后端数据库中;导致缓存没有击中,所有的请求都直接打在了我们的后端数据库中;缓存击穿可以看成是缓存雪崩的一个特例,
2024-01-23 12:45:25
439
原创 秒杀场景下的业务梳理——Redis分布式锁的优化
假设我们现在有一个商城系统,里面上线了一个商品秒杀的模块,那么这个模块我们要怎么设计呢?秒杀模块又会有哪些不同的需求呢?利用set nx ex获取锁,并设置过期时间,保存线程标示释放锁时先判断线程标示是否与自己一致,一致则删除锁 (Lua 脚本保证原子性)有哪些特性?利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利用Redis集群保证高可用和高并发特性目前还有待完善的点:不可重入,同一个线程无法多次获取同一把锁不可重试。
2024-01-23 12:38:18
1239
原创 从理论到实践:Redis中的复制状态机实现与应用
在分布式环境中,高可用性是一个非常重要的问题。为了保证数据的完整性和可用性,多数分布式系统采用复制来保证高可用性。而在Redis中,复制是通过复制状态机来实现的。首先,让我们来看一下复制状态机的定义。复制状态机是一种状态机,它通过不断地跟踪每个节点的复制状态来管理复制过程。复制状态机通过不断地监控复制过程,并在发生故障时自动触发失效切换,从而保证数据的完整性和可用性。在Redis中,复制状态机的主要。
2023-02-10 17:48:29
398
原创 2022年末总结——大年三十执笔
2022 年,我计算机系,大三,转眼间已经快到了本科毕业的时候了。说真的,看着时间飞快,内心里也很是迷茫;当初高考后选择计算机,并不是因为自己对计算机有多热爱,并不是因为自己计算机基础有多好;可能只是单纯地觉得会敲代码很酷吧,又或者说这个专业前景好?可能是因为大学之前都没有接触过编程吧,在大一的时候(2020~2021),对编程其实是没有任何概念的,由 c 入门,都只会"), 当然也有可能是受心境、阅历等的限制,当时并不知道大学应该怎么学,怎么过(虽然现在也不怎懂,哈哈哈)。
2023-01-24 16:36:16
226
原创 假如Redis同时开了RDB和AOF会怎样?
因为前面的数据是RDB记录的二进制形式的数据,所以直接加载进内存即可,而appendonly.aof 后面是少量的 AOF记录的命令,则需要重新执行。虽然是两种持久化方式都开启了,也就是说会产生 dump.rdb 和 appendonly.aof 两种文件,但是掉电恢复时,是只会使用 appendonly.aof 来恢复的!也就是说,这种情况下, appendonly.aof 文件的前部分是 RDB的数据,后部分才是AOF的数据。其实是可以的,我们可以两种持久化方式都开启(AOF默认是不开启的)
2023-01-11 01:24:44
1716
原创 假设让你为MySQL选择索引
索引结构,其实就是一种数据结构,或者说是一种数据的组织形式。你想想,假如现在你有一大堆东西,然后你想放好它,那这时候你是不是就会考虑怎么放,放哪里了呢?其实这个怎么放的规则,就是一种索引。到时候你怎么放就怎么取。数组hash链表树(二叉搜索树,平衡树)B+树跳表。
2022-10-07 09:22:38
278
原创 MySQL基于冷热数据分离优化的LRU刷盘策略
简单点来说就是,有维持一条链表,每访问一个数据页就将其移动到表头,这样在链表尾的就一直是当前时刻的最近最少使用的页面。
2022-10-07 09:14:02
432
原创 HTTPS底层原理及其安全原理
平时我们在访问网页的时候一般都是直接输入域名,如www.baidu.com。而这种情况下,是先走HTTP的(后面有了改进,后面会提到)。HTTP协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,因此通信过程非常容易遭遇劫持、监听、篡改。既然HTTP是明文传输才引发的这一问题,那我们自然而然地就想到了对数据进行加密传输:可是哪怕是加密了,这并不代表着就是安全了的,就像上图所示的那样,哪怕客户端用加密算法将数据进行了加密,代理服务器仍然可以截获加密算法和相关数据(因为HTTP
2022-06-25 02:43:29
295
原创 电脑版微信存储路径
1.普通下载的:在电脑版微信默认的存储路径一般是在【系统盘:\Users\Administrator\Documents\WeChat Files】里面,具体可以在微信电脑版的【设置】-【通用设置】中查看。2.win10商店下载的:安装文件路径:%LOCALAPPDATA%\Packages\TencentWeChatLimited.forWindows10_sdtnhv12zgd7a其中聊天记录图片等在:%LOCALAPPDATA%\Packages\TencentWeChatLimited.
2022-05-15 15:02:08
33149
原创 linux系统配置及常用命令汇总(更新版)
一、Linux目录结构在Linux中一切皆文件二、Vi/VIM编辑器1、一般模式进入一般模式:vim 1.txt此模式下的常见操作,如下:语法功能描述yy复制光标当前一行y 数字 y复制一段(从第几行到第几行)p箭头移动到目的行粘贴u撤销上一步dd删除光标当前行d 数字 d删除光标(含) 后多少行x剪切一个字母, 相当于 delX剪切一个字母, 相当于 Backspaceyw复制一个词dw删除一个词.
2022-05-14 23:43:37
3904
1
原创 Linux网络及系统配置
一、Linux目录结构在Linux中一切皆文件二、Vi/VIM编辑器1、一般模式进入一般模式:vim 1.txt此模式下的常见操作,如下:语法功能描述yy复制光标当前一行y 数字 y复制一段(从第几行到第几行)p箭头移动到目的行粘贴u撤销上一步dd删除光标当前行d 数字 d删除光标(含) 后多少行x剪切一个字母, 相当于 delX剪切一个字母, 相当于 Backspaceyw复制一个词dw删除一个词
2022-05-14 17:57:15
221
原创 MySQL的锁机制,你真的理解了吗?
MySQL的锁机制MySQL的锁机制,你真的理解了吗?我们都知道事务并发有可能导致脏写,脏读、不可重复读,幻读等问题,而这类问题归结起来可以分为以下三类(经典读写问题):“读-读”:两个事务都只是读取数据,并发执行,对对方不产生任何影响。“写-写”:两个事务都需要对数据进行修改,则有可能引发脏写,脏写是任何一种隔离级别都无法忍受的问题,因此,为了解决这个问题,在事务并发的场景下,我们需要对事务访问的数据进行加锁,让访问同一数据的事务排队访问(串行)“读-写/写-读”:一个事务读数据,另外一个事务
2022-03-21 23:23:47
4584
原创 MySQL如果没有事务,究竟会发生什么?
MySQL如果没有事务,究竟会发生什么?一、从转账到事务解说1、事务的概念:我们先说个小故事:平行世界里,某一对异地情侣boy和girl,boy有100块钱,girl有10块钱,现在boy想在给girl 手机转账50块钱,对应的数据库操作为:UPDATE account SET balance = balance - 50 WHERE id = boy; # 1UPDATE account SET balance = balance + 50 WHERE id = girl; # 2只有操作
2022-03-20 11:30:51
2918
原创 MySQL的索引分类及创建原则
一、索引分类。编辑切换为居中添加图片注释,不超过 140 字(可选)普通索引:添加普通的索引不会对原来的列产生任何影响,该索引只用来提高查询效率(该列是否非空,是否唯一由列本身的约束条件约束)。 唯一索引:添加唯一索引的列不允许出现重复值,否则报错,但允许有空值(一个表可以有多个唯一索引)。 主键索引:一种添加了非空限制的特殊唯一索引,因为数据存储在文件中只能按一种顺序存储,所以一张表中只允许有一个主键索引。 单列索引:可以是前面三种索引,只要保证该索引对应的是单一列即可,一个表中可以有多个单列
2022-03-19 16:24:28
4043
1
原创 TCP——三次握手与四次挥手
文章目录一、TCP基础知识补充二、如何建立连接——三次握手三、如何释放连接——四次挥手一、TCP基础知识补充TCP是运输层使用的一种协议,提供面向连接的、可靠的字节流服务。TCP协议的头部:TCP端口:TCP是端到端,点到点的协议,所以在它的头部当中有明确的来源(源端口)和去向(目的端口),TCP是一对一的,不能用于广播。TCP的面向连接是指逻辑上的连接,所以它头部当中的“源端口”和“目的端口”都是指软件端口,注意和硬件端口的区分。顺序号(seq):TCP是面向字节流的,不管应用
2022-02-17 19:09:33
924
原创 【java基础】
文章目录一、java跨平台原理1、jvm跨平台2、JRE和JDK二、path环境变量配置1、为什么需要配置2、如何配置一、java跨平台原理1、jvm跨平台跨平台是指java语言可以在多种平台上正常运行,而不同平台的底层是不一样的,它们要识别同样的java语言就需要一个翻译——jvm(java虚拟机)。就像一种语言需要让多个国家的人听懂,只需要有一个翻译将该语言翻译成对应国家的语言即可。2、JRE和JDKJRE是java程序的运行环境,包括jvm和运行时所需要的核心类库。如果只是单纯想运
2022-02-04 18:37:12
354
原创 【Git版本控制】——保姆级教程
文章目录一、版本控制1、版本控制的功能:(1)追踪文件的变更(2)并行开发2、版本控制的发展历程(1)本地版本控制系统(2)集中化的版本控制系统(3)分布式版本控制系统(Git)二、Git1、Git的结构2、命令行的操作(1)本地库初始化(2)设置签名(3)状态查看(提交前后)(4)查看历史版本记录(5)版本的前进/后退(6)比较文件间差异3、分支操作解决分支冲突一、版本控制版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。1、版本控制的功
2022-01-27 17:28:02
2470
原创 【操作系统】——基本分页存储管理
文章目录一、什么是分页存储二、页表(存PCB中)三、如何实现地址转换一、什么是分页存储将内存分为一个个大小相等的分区, 这些分区称作为(页框、页帧、内存块、物理块、物理页面)若对分区进从编号,则又有了对应的(页框号、页帧号、内存块号、物理块号、物理页号),从0开始进程的信息都是要存在内存中的,既然内存有了分区,那么进程逻辑地址空间上也会有相应的大小相等的分区,称为(页、页面),对应编号为(页号、页面号),从0开始。上面这么多名称着实是难记,但是我们只需要记住只有(页、页面)/(页号、页面号)是和
2022-01-25 23:11:11
12248
1
原创 【操作系统】——处理机的调度(6)
文章目录一、处理机调度调度的三个层次1、高级调度(作业调度)2、低级调度(进程调度/处理机调度)一、处理机调度调度就是按一定规则响应各个请求者,对请求者设置了访问顺序。 调度的三个层次1、高级调度(作业调度)在操作系统中的作业是指一个具体的任务,用户向系统提交一个作业其实约等于用户让操作系统启动一个程序(来处理一个任务)高级调度是针对作业而言的,本质上而言,高级调度是将处于外存当中的程序按一定次序调入内存的过程。2、低级调度(进程调度/处理机调度)低级调度是针对进程而言的,本质上而言
2022-01-22 11:54:41
2184
原创 【操作系统】——线程(5)
文章目录Tips一、线程的引入1、引入线程后带来的变化2、线程的相关属性二、线程的实现方式1、用户级线程2、内核级线程3、多线程模型(1)一对一模型(2)多对一模型(3)多对多模型Tips【操作系统】——进程的控制及通信(4)一、线程的引入在没引进进程概念的时候,程序只能顺序执行,我们不能一边登qq,一边听音乐,而进程引入之后使得每个应用程序(系列程序)间可以并发执行,所以进程是使得多个程序可并发执行的,也就实现了多应用同时运行。现在单纯地在qq当中,我们可以做的事情也很多,而如果只有进程的话
2022-01-21 21:57:12
684
原创 【操作系统】——进程的控制及通信(4)
文章目录一、进程的控制二、进程通信(IPC)1、共享存储(1)基于存储区的共享(高级通信)(2)基于数据结构的共享(低级通信)2、消息传递(1)直接通信方式(2)间接通信方式3、管道通信# Tips[【操作系统】——进程及状态转换(3)](https://blog.youkuaiyun.com/m0_54385790/article/details/122616614)一、进程的控制进程的控制主要是指对进程状态转换的控制,状态转换一旦启动就不允许被打断,所以状态转换是一个原语操作,不可细分,不可打断。
2022-01-21 17:51:29
1188
原创 【操作系统】——进程及状态转换(3)
文章目录一、进程1、进程的概念2、进程的组成——PCB3、进程的特征二、进程的状态转换1、进程五状态模型2、五状态转换总结:三、进程的组织1、链接方式(主流)2、索引方式(了解)一、进程1、进程的概念程序: 静态的,存放在磁盘里的可执行文件,是一系列指令的集合进程: 动态的,是指程序的一次执行过程,同一个程序多次执行会得到多个进程。上图是任务管理器中的进程管理模块,里面显示了当前正在运行的进程。从上图我们可以清楚得看到有三个qq在运行,其实这并不是指电脑上有三个qq程序,而是指我们当前打
2022-01-21 12:08:13
2083
原创 【操作系统】——运行机制及体系结构(2)
文章目录一、操作系统的运行机制1、两种指令2、两种处理器状态二、中断和异常1、中断的作用一、操作系统的运行机制1、两种指令特权指令: 只允许管理者,操作系统内核来使用非特权指令: 除了特权指令之外的指令2、两种处理器状态核心态: 又称内核态,此状态是运行内核程序,执行特权指令的(也可以执行非特权指令)。用户态: 运行应用程序,只能执行非特权指令程序状态寄存器标志处理器中不同的状态两种状态的切换:电脑刚开机的时候是CPU处于内核态的,CPU上运行的是操作系统的内核程序开机完成后,用
2022-01-20 11:35:51
640
原创 【操作系统】——定义及发展历程(1)
文章目录前言一、操作系统的概念二、使用步骤1.引入库2.读入数据总结前言一、操作系统的概念操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsi
2022-01-19 15:27:09
732
原创 【计算机组成原理】——期末不挂科系列(2)(持续更新ing)
文章目录*Tips五、全加器1、串行加法器2、并行加法器*Tips为了知识点的连贯性,所以建议各位小伙伴们在看本文之前先看系列(1)哦~【计算机组成原理】——期末不挂科系列(1)(持续更新ing)五、全加器全加器是在半加器的基础上进行完善的。区别:全加器接收进位(Ci-1),半加器舍弃进行,只保留本位和。Ai和Bi是输入,Si是本位和,Ci-1是进位,Ci是进位1、串行加法器一位全加器,顾名思义是单次只能进行一位的加法运算。2、并行加法器由上图,我们可以很清楚得看到该加法器是由多
2022-01-03 14:17:28
678
原创 【计算机组成原理】——期末不挂科系列(1)(持续更新ing)
文章目录一、计算机硬件的基本组成1、早期的冯诺依曼机:2、 现代计算机:3、对基本部件的细分理解:(1)主存储器(2)运算器(3)控制器(例子)指令周期一、计算机硬件的基本组成未解决早期计算机不会自动执行后面指令的问题,冯*诺依曼等人提出存储程序的概念:将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按程序的规定顺序执行其他指令,直到程序执行结束。1、早期的冯诺依曼机:以运算器为中心,削弱了运算器的计算能力。带箭头的实线代表数据线(
2022-01-01 17:47:30
2852
原创 【数据库】mysql各种约束大汇总
文章目录一、默认约束(default)二、非空约束(NOT NULL)三、唯一约束(unique)四、主键约束(primary key)五、自增长约束(auto_increment)六、无符号约束( zerofill)七、零填充约束( zerofill)八、外键约束(foreign key)一、默认约束(default)可以指定列的默认值,若插入数据时该列没有值,则使用default指定的默认值。创建模式:新建表时创建( create … default)create table t1(
2021-12-28 02:10:41
830
原创 熬个圣诞,将java面经总结进行到底
【java面经】人生没有白走的路,你走过的每一步都算数!以前怎么样,我们已经无法追悔,但是我们可以把握好当下,为了各位小伙伴能在春招的时候,表现出类拔萃,为了圆大厂梦,从今天开始,小姐姐决定开一个java面经的专栏,希望能和各位小伙伴们一起学习,一起进步。
2021-12-25 01:55:38
301
原创 你还记得校园里的那个她吗?——当微信记录被撤回
目录:前言一、导包二、建立查找函数三、主函数四、代码测试总结一、本次文章主要解决了两个问题:二、代码使用说明三、后期憧憬前言前几天有个非常重要的朋友给我发了张照片,可是我还没来得及查看就被撤回了。。。在那一刻真的很想找出来,如何能有办法查看就好了,可是呢?总不能问她吧。。。就在我左右为男的时候(咳咳~)是左右为难,突然想起来好久之前在某度看到的防撤回大法。随便挑了一个文章来看,上面说微信撤回的图片都会在本地有记录的,保存在C:\Users\Administrator\Documents\W
2021-12-16 02:36:10
1214
1
原创 【数据库】SQL快速上手
目录前言一、MySQL的登录及相关操作二、SQL语法1.基本设置2、从数据表中提取数据——select3、去重复值——select distinct三、SQL高级前言SQL全称结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL具有数据定义、数据操纵、和数据控制的功能。**1、SQL数据定义功能:**能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQ
2021-12-09 16:41:26
419
原创 【数据结构】经典八大排序(算法+动图+代码详解)
前言我们在学习数据结构或者算法的过程中不可避免地需要用到排序,而在数据结构中主要介绍了,八种常见排序,本次就让我们一起深入学习下吧
2021-12-04 20:51:00
2152
原创 反斜杠“\“、双反斜杠“\\“和斜杠“/“的路径问题
文章目录前言1、c语言中路径问题2、java中路径问题1.引入库2.读入数据总结前言相信大家在学习IT的过程中肯定会遇到一些各种各样和""、"/"等有关的问题,本文就从各种斜杠的路径写法出发,总结了几大关于斜杠的常见问题解释及方法。1、c语言中路径问题2、java中路径问题读取项目中的文件,即文件在当前项目的某个目录下,路径一般采用正斜杠“/”。读取window系统的文件,即文件在window系统的资源管理器下,路径可以采用双反斜杠“\” 或者正斜杠“/”。读取linux系统的
2021-11-30 17:03:39
7389
1
原创 【经典】关于指针赋值、输出报错的那些事
今天看到一道很有意思的题,本来想回答的但是还是慢了点,唉。。。可是这里面涉及到的点真的很容易出错,一不小心就掉坑了。。。指针赋值报错各位小伙伴们看看下面这几句代码是否存在问题?#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char *p; scanf("%s",p); printf("%s",*p); }是不是乍一看,毫无问题啊,嘿嘿,可是它偏偏就是会出错。。
2021-11-29 16:33:54
1802
原创 哈希表代码详解(一对一)
开放定址的哈希表的实现哈希表的类型定义typedef struct { RcdType *rcd; //哈希表记录的地址指针 int size; //哈希表的规模 int count; //记录个数 int *tag; //标志指针:1为有,0为空,-1为已删除 int (*hash)(KeyType key,int size) ; //起映射作用的哈希函数指针 int (*collision)(int &hashValue,int size) ; //处理冲突的函数指针
2021-11-27 13:55:33
813
原创 数据结构中难解的数据类型
那些年懊恼的数据类型相信很多刚开始学数据结构的小伙伴们都会有个困惑:数据结构的书本里为什么莫名奇妙地就出现了很多之前见所未见、闻所未闻的数据类型,比如ElemType、RcdType、ElemTage等。原本以为是自己才疏学浅吧,可能是c语言中某些高深的知识点,所以直接上机尝试一番。。。好不容易写好代码(和课本一模一样),点击运行。。。可谁曾想——满屏红红的报错。这是什么原因呢?因为不管是ElemType还是RcdType等,他们都只是一个代名类型,使用前需要根据实际需要进行typedef类型
2021-11-24 11:04:18
890
清华大学的DeepSeek从入门到精通(全104).pdf
2025-03-24
简单清爽的简历模板(非常好用)
2024-01-23
MySQL中InnoDB存储引擎的加锁分析
2024-01-23
广工计算机网络课设源文件(内含.pkt文件,核心报告以及相关的说明文档)
2022-07-13
广工操作系统实验(内含源码、可执行文件以及相关的说明文档)
2022-07-13
广工操作系统的课程设计——多级文件系统(java实现,内含源码,可执行文件、核心课设报告以及相关的说明文档)
2022-07-13
广工数据结构课程设计——平衡二叉树操作的演示
2022-07-06
广工计算机网络实验源文件(内含.pkt文件,Cisco Packet Tracer Instructor软件实现)
2022-05-08
t.sum为什么在方法体之外不能被调用?
2022-08-27
前端vue项目中如何设置访问后端的端口?为什么设置了BASE_API却不生效?
2022-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人