自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重磅来袭————docker部署分布式搜索神器Elastic Search及es图形化界面神器kibana部署全流程实战解析

我们这里是采用MobaX远程连接工具,通过SFTP远程文件上传服务将提前下载好的es.tar压缩包上传到虚拟机上(centos7),然后通过docker加载镜像,实现容器化部署,下面我们来看详细步骤。

2025-11-30 15:38:39 609

原创 面试redis篇———缓存击穿和缓存雪崩问题及解决策略

缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个Key有大量的并发请求过来。这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存。这个时候高并发的请求可能会瞬间把DB压垮。如上图所示,数据库在返回结果之前通常用重建缓存,如果其中涉及到多表查询,重建缓存通常需要一定时间,如上图比如重建缓存的过程需要50ms,但是就在这50ms的时间有大量请求发过来,就会直接压垮数据库缓存雪崩意思是设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效。

2025-11-02 22:17:25 1132

原创 面试Redis篇—————缓存穿透问题及解决策略

请求首先经过布隆过滤器,如果过滤器中存在,查询redis,如果不存在直接拦截,缓存预热时需要预热布隆过滤器,热点数据可以先批量添加到缓存中,请求也会优先读取缓存,添加数据到缓存的同时也要添加到布隆过滤器中。比如id为1的数据一开始确实没有缓存为null,但是后面添加上了,但是缓存中还是null,就导致了缓存和数据库数据不一致的问题。假设现在有一个请求,正常的处理应该是根据id查询redis,如果命中返回结果,如果redis查不到,就去查数据库,数据库查询到结果返回,在返回之前先把数据存储到redis。

2025-11-02 20:56:06 322

原创 JAVA全栈JVM篇————初识JVM

🍬假设现在有一个Java字节码文件,里面有一段字节码指令,虚拟机如果发现这段指令是热点代码,也就是在很短时间内被多次调用,它就会认为这段代码有必要去优化,就会主动优化并且解释成计算机能够执行的机器码,然后做一个非常关键的步骤,将这个机器码保存在内存中,第二次执行时就直接从内存中把这个机器码取出来直接进行调用,这样就省略了一次解释的步骤,提高了性能。🍬c和c加加追求性能,但是不能跨平台,java支持跨平台,性能就会差一些,但是好在JVM开发者很早的就注意到这个问题,在jdk1.1版本中就引入了即时编译功能

2025-10-19 21:06:00 736

原创 全栈开发杂谈————JAVA微服务全套技术栈详解

微服务做拆分时会根据业务功能模块把一个单体项目拆分成许多个独立的项目,每个项目完成一部分业务功能,将来独立开发和部署,我们把这独立的一个项目称为一个服务,一个大型的互联网项目会包含成百或者上千的服务,最终形成一个服务集群。

2025-10-10 21:18:38 1055

原创 全栈开发杂谈————关于websocket若干问题的大讨论

如果仅需要单向推送 :SSE是一个比WebSocket更轻量级的选择,实现简单且资源消耗更低如果未来可能扩展双向通信 :WebSocket提供了更完整的功能,避免未来需要重构而且本项目有来单提醒和催单业务功能本身就有websocket依赖,所以websocket无疑是最合适的选择实际应用考虑 :在实际应用中,还需要考虑服务器端的支持情况、客户端环境的限制以及团队的技术熟悉程度等因素,选择最适合的技术方案。

2025-10-05 22:26:29 1109 4

原创 JAVA全栈Redis篇————List常用命令讲解

🍬🍬🍬如何用List模拟一个栈?入口和出口设置在同一边(都用L或都用R)🍬🍬🍬如何用List模拟一个队列?入口和出口设置在不同边🍬🍬🍬如何用List模拟一个阻塞队列?入口和出口设置在不同边出队时采用BLPOP或BRPOP。

2025-08-28 16:26:12 1037

原创 JAVA全栈Redis篇————Hash类型常用命令介绍

对比下面两张图我们可以知道String结构是将对象序列化为JSON字符串后存储,但是由于过强的封装性,当需要修改某个字段时很不方便,而Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做修改,相当于在大的键值对结构中又嵌套了小的键值对。然后刷新图形化界面,就会发现左侧出现wang的文件夹,然后我们在下面的user里就可以找到我们创建的wang:user:1,然后发现它有三个字段,这三个字段组成了一个哈希表,并且我们可以独立修改每个字段的值。:获取一个hash类型key的field的值。

2025-08-28 16:22:12 1046

原创 JAVA全栈Redis篇————String类型常用命令介绍

🍕🍕🍕我们主要通过Windows系统上的Redis安装程序以及Redis的图形化界面工具Another Redis Desktop Manager进行讲解,本篇文章讲解字符串String类型操作的常用命令,🏍️🏍️🏍️。

2025-08-28 16:21:09 956

原创 JAVA全栈Redis篇————Redis常用数据类型概述

在正文开始之前我们应该有一个基本的概念,前面我们已经知道Redis是一种非关系型数据库并且是基于缓存的一种数据库,其本质是一种Key-value(键值对)结构的数据库,关于键我们没有什么好说的,它只是属性的名称而已,我们说Redis的数据类型也主要是从键值对的value层面说的,如下图所示,我们可以把value的类型分为如下常用的五种类型,本篇文章我们会一 一讲解。按照插入顺序排序,可以有重复元素,类似于Java中的Linklist,其本质是一个双向链表,可以从头插入和删除,也可以从尾插入和删除。

2025-08-28 16:19:06 331

原创 Javaweb————Windows11系统和idea2023旗舰版手动配置Tomcat9全流程解析

点击菜单栏的🍕🍕🍕,所有配置按如下图所示的配置即可,JDK通常IDEA软件会检测电脑上已经安装的JDK版本,自己指定一个项目名称,点击Create即可。

2025-08-03 16:37:53 1532

原创 Javaweb————Apache Tomcat目录文件结构讲解

logging.properties:修改编码格式,我们之前调节中文乱码就是在这个文件中改的。(Windows是bat,Linux和MAC是sh,前面的文章已经提到过)server.xml:配置整个服务器信息比如修改端口号,添加虚拟主机。除了这六个目录以外的其他目录不属于核心目录,我们就不做过多的讲解了。

2025-08-03 12:22:17 564

原创 Javaweb————Apache Tomcat服务器介绍及Windows,Linux,MAC三种系统搭建Apache Tomcat

服务器是远程的一个电脑,里面安装服务器程序监听对应的端口对外提供服务,可以根据用户的请求去获取对应的数据并返回给调用方。我们说的Web服务器和应用服务器是指服务器电脑上安装的软件先来说一下Apache组织Apache软件基金会(也是Apache Software Foundation,简称为ASE)是专门为运作一个开源软件项目的Apache 的团体提供支持的非盈利性组织。也是java开发里面顶级的组织,阿里也向apache组织贡献了多个开源项目。

2025-08-02 21:31:05 1304

原创 Javaweb————什么是OPTIONS预检请求

预检请求是浏览器在发送某些跨域请求之前,会发送一个 OPTIONS 请求,目的是为了确认服务器是否允许该跨域请求。当请求头中存在自定义请求头时或者在标准请求头中设置非标准内容时,也会触发预检请求。OPTIONS 预检请求流程OPTIONS 请求会包含一下头部信息:Origin:请求来源的域名Access-Control-Request-Method: 实际请求所使用的 HTTP 方法Access-Control-Request-Headers:实际请求所携带的自定义请求头。

2025-07-30 23:16:23 530

原创 Javaweb———HTTP响应头属性讲解

上篇文章我们介绍了HTTP请求头的常见属性及其属性值,这篇文章我们接着讲述HTTP响应头的常见属性及其属性值。

2025-07-30 22:38:35 765

原创 Javaweb————HTTP请求头属性讲解

跨域请求(Cross-Origin Request)发生在浏览器中,当网页通过前端代码(如JavaScript)请求与当前页面不同源的资源时。‌源(Origin)‌由协议(如HTTP/HTTPS)、域名和端口号共同定义,三者任一不同即视为跨域。例如:‌当前页面URL为https://a.com,请求https://b.com/data(域名不同)当前页面URL为http://a.com,请求https://a.com/api(协议不同)

2025-07-29 23:39:04 1407

原创 Javaweb————揭秘404 not found(HTTP常用响应码)

浏览器向服务器请求时,服务端响应的响应头的第一行(状态行)里面有状态码,表示请求结果的状态。

2025-07-29 10:56:57 554

原创 Javaweb————HTTP的九种请求方法介绍

作用:向服务器获取资源,比如常见的查询请求应用场景:绝大多数场景,比如我们访问商城首页查看图片,视频,文字等信息都需要浏览器向服务器发送查询请求我们打开百度的首页,空白部分单击鼠标右键弹出的框中选中方法,就会出现每个请求的请求方法,观察下面的红框,我们可以发现都是GET的方法作用:一般是用于更新请求,比如更新个人信息,商品信息全量更新应用场景:大批量更新或者全量更新的场景实际开发过程中最常用的就是get和post两种请求,需要重点掌握,剩下再常用的就是前面七种,最后两种网站开发基本用不上,了解即可。

2025-07-26 22:51:54 529

原创 Javaweb————HTTP消息体拆分讲解

响应体我们切换到响应页面就可以看到,这就是解析完请求体参数后而渲染出的内容。

2025-07-26 21:57:26 625

原创 Javaweb————什么是超文本传输协议?

协议是一种约定,规定好一种信息的格式,如果发送方按照这种请求格式发送信息,那么接收端就要按照这样的格式解析数据,否则就会出错,这就是协议👓👓👓(1)json协议(轻量级数据交换格式)基于两种基本结构:对象:由大括号{ }包围 包含键值对,键必须为字符串并且用双引号包围,值可以是字符串,数字,数组等数组:由方括号 [ ]包围,值可以是字符串,数字,数组等数组和对象可以互相嵌套age":23👓👓👓(2)xml(可扩展标记语言)协议</</</(3)TCP/UCP 网络传输协议。

2025-07-26 17:08:25 1020

原创 Javaweb————BS和CS架构你知道多少?

统一资源定位符,获取服务器资源的一种。

2025-07-26 11:52:52 932

原创 Javaweb————学习javaweb的预备知识

主要指的是网页中没有程序代码,后缀名一般为.HTML。

2025-07-25 18:11:35 464

原创 JAVASE————java修饰符详解(上)

我们的test方法没有指定权限即为默认权限default,而根据下面的表格,我们注意到两个不同包中的类是用public修饰的,所以不同包中可以创建不同的类的对象,但是对象可以创建,由于类内的方法default修饰的,而default不支持不同包中的子类及非子类的访问,所以会报错。我们注意到protected方法它在不同包中的非子类中是不能调用的,但是在不同包中的子类中却是可以调用的,所以我们采用继承的方式让MainTest成为Father类的子类,这就是利用了protected的原理。

2025-07-25 12:40:24 785

原创 java微服务(Springboot篇)——————IDEA搭建第一个Springboot入门项目

面向切面编程(AOP)通过将横切关注点(cross-cutting concerns)分离出来,提供了一种增强代码模块化和可维护性的方法。简单来说,AOP就是将公共的模块封装成公共的方法,然后在需要的时候(这个就是切入点),直接就可以调用,而不用在各个对象里面具体的实现。AOP是一种新的编程方式,它和OOP不同,OOP把系统看作多个对象的交互,AOP把系统分解为不同的关注点,或者称之为切面(Aspect)。这个可以理解为把系统理解为一个流程,一个对象负责流程上的一个节点。

2025-07-04 17:07:25 1815

原创 JAVASE————java基本异常体系介绍

异常就是错误的意思,指程序运行时发生的不被期望的事件,阻止了程序按照预期正常执行🍬🍬🍬 编译错误:新手最常见,没遵循语法规范🍬🍬🍬 运行时错误:程序执行时🍬🍬🍬 逻辑错误:程序没有按照预期的逻辑顺序执行。

2025-06-30 22:38:06 808

原创 操作系统————FCFS(先来先服务),优先级调度,SJF(短作业优先调度),RR(时间片轮转调度)四大算法的c++代码实现

RR算法较为灵活,时间片的大小我们可以自己指定,比较函数按照进程到达时间排序,我们给每个进程记录剩余执行时间和执行标记,roundRobin函数部分我们分两种情况讨论,第一种是剩余时间大于一个时间片,此时我们就不能计算完成时间,让时间线继续往后走,第二种就是剩余执行时间小于一个时间片,此时进程就可以执行完毕,我们也可以计算完成时间,周转时间等。SJF算法与前两种算法不同的是会发生抢占,我们在结构体中设置一个bool型标记,标记进程状态,这样被抢占的进程还会被重新调度。

2025-05-21 11:06:45 1188

原创 操作系统————四种动态分区分配算法详解(首次适应,最坏适应,最佳适应,邻近适应)

假设此时又有一个进程6需要5MB的空间,那么上次结束的位置是2号空闲分区,我们直接往后查找到10MB的空闲分区发现满足条件直接分配,这样指针移动的次数是1次。首次适应算法有一部分最佳适应算法的优点,而邻近适应算法包含了最坏适应算法的缺点,所以不能说邻近适应算法比一定首次适应算法好。我们假设现在内存有三个空闲分区,大小分别是20MB,10MB,4MB如上图所示。按容量递增的顺序就可以保证找出的分区是最合适的,不会太大造成空间的浪费。我们还是以上面的例子分析,按照容量递减的顺序排列空闲分区。

2025-05-20 22:31:08 2226 2

原创 操作系统————五种页面置换算法(OPT,FIFO,LRU,NRU,加强版NRU)大总结

🍬🍬🍬。

2025-05-19 21:37:53 1339

原创 计算机组成原理———CPU指令周期精讲

间址周期数据流,间址周期说明当前要执行的指令采用的是间接寻址的方式,指令所需要的操作数的地址保存在指令的地址码部分,起始操作可以从MDR或者IR开始,把地址码部分送给MAR进行内存单元的访问,MAR把地址送到地址总线通过地址总线送给存储器,CU把信号送到控制总线,再由控制总线送到存储器,存储器执行读操作把数据送到数据总线,这个数据实际上是操作数所在内存单元的地址,这个地址送到MDR中,这个时候MDR就真正保存了操作数所在内存单元的地址。比如乘法操作的时钟周期比较复杂,相应的执行周期就比较长。

2025-05-12 21:54:13 888

原创 cache计算专题大精讲————九大题型配套小编人机化解法,想不会都不行!!!

下面我们看一道题目:这道题的第三小问就是题型1的类型,在正式计算之前我们还要给出两个公式这两个公式实际上本质是一样的,相当于物理当中的量纲统一,要用字节数都用字节数计算,要用字数都用字数计算下面我们给出解析:第一步:求cache的块数,因为容量是以KB形式给出的,所以我们用字节计算cache块数=4KB/(1632)=64块第二步:题目中给出cache块号是第五块,我们求出了cache总块数,代入公式计算j=5,n=64.现在求有多少个ii的取值可以为5(k=0),5+64(k=1),5+6

2025-05-11 17:41:52 1126

原创 Mysql从入门到精通day6————时间和日期函数精讲

【代码】Mysql从入门到精通day6————时间和日期函数精讲。

2025-04-27 17:50:42 490

原创 java集合框架day1————集合体系介绍

2>提供了一系列方便操作对象的方法:add,remove,set,get等。<3>使用集合添加,删除新元素的示意代码,简洁明了。<1>可以动态保存任意多个对象,使用方便。为了方便读者理解,我们来看一下实例代码。下面我们来看一下java的集合框架图。增加/删除元素的代码比较麻烦。,而且一旦指定,不能更改。

2025-04-21 21:52:29 425

原创 计算机组成原理—————计算机运算方法精讲<3>反码及移码的表示

这就要说到移码的作用了,移码主要的用途是表示浮点数的阶码,而阶码没有小数只有整数,所以移码只给出了整数的定义。

2025-04-16 21:32:20 765

原创 计算机组成原理————计算机运算方法精讲<2>补码精讲及两个关于补码的秒杀大法

对于真值0.1110,它的原码是0.1110,正数补码是本身不变,对于-0.1110我们可以知道原码1.1110然后利用秒杀技,最后的10照抄,小数点后的两个1取反,就可以直接得到补码1.0010,是不是非常好用呢?我们由1011变为0000可以通过减去自身得到,也可以加上0101来实现,加上0101的结果是10000,但由于计数器只有4位(16=2的4次),所以。我们可以在数值位前面加上符号位来表示,0表示正数,1表示负数,那么我们如何实现符号位的变化呢?,所以我们可以模(pow(2,4+1))

2025-04-14 22:22:32 769

原创 Mysql从入门到精通day5————子查询精讲

这里我们使用之前的文章已经创建过的图书借阅表和图书信息表,先查看两表中的图书id部分,结果如下图:下面的语句的意思是通过in关键字从图书借阅表中查询图书id,前提条件是这个id在图书信息表也出现过,然后返回图书id,图书名,作者,价格可以看出上图中的图书信息表中的id有4个,但是查询记录只有三条即两表的公共部分如图,内层查询两表的公共id外层返回查询到的记录为了使读者更直观了解比较运算符查询我们新建了两个表为图书归还表和管理员信息表然后我们插入数据包含姓名,年龄,部门查看插入的结果使用

2025-03-31 21:09:31 639

原创 计算机组成原理————计算机运算方法精讲<1>原码表示法

原码是机器数中最简单的一种表示形式,符号位为0表示正数,符号位为1表示负数,数值位是真值的绝对值,所以原码又称为带符号的绝对值表示。为了区别整数和小数,约定整数的符号位与数值位之间用逗号隔开;小数的符号位与数值位之间用小数点隔开我们都知道不管是原码还是补码他们都是机器数,是机器数就一定会受到硬件的限制即位数的限制,所以多余的位会自动舍去,这对我们后续理解补码非常重要,不指定字长的机器数是没有意义的。

2025-03-30 21:46:20 1308

原创 Mysql从入门到精通day4———触发器的神奇你真的懂吗?

触发器是由SOL的基本命令事件来触发某种事件的特定操作的,这些基本的命令由INSERT(插入),DELETE(删除),UPDATE(修改)等事件来触发某些特定操作,满足触发器的触发条件时,数据库系统就会自动执行触发器中定义的程序语句使操作间的一致性得到协调。

2025-03-27 09:41:04 574

原创 计算机组成原理———I\O系统精讲<1>

既可完成I/O通道要完成的I\O控制又可以完成码制变换,格式处理,数据块检错,纠错等操作。(2)输入输出过程穿插在CPU执行程序过程中进行,当I\O设备与主机交换信息时,CPU不得不停止各种运算,因此,,而不用再通过CPU,使CPU在I\O设备与主存交换信息时能继续完成自身的工作,资源利用率得到了进一步的提高。(3)每个I\O设备的逻辑控制电路与CPU的控制器构成不可分割的整体,彼此相互牵连,相互依赖,因此。,用来实现I\O设备与主机之间的信息交换,因此线路十分散乱,庞杂。,故提高了CPU的资源利用率。

2025-03-25 22:21:22 1102

原创 Mysql从入门到精通day3————记一次连接查询的武装渗透

*总结:左连接,左对右,左没右,右加NULL;右连接,右对左,右没左,左加NULL;简单点说就是左连接能列出左边关系所有的元组,右连接能列出右边关系所有的元组,我们的例子中左连接列出了借阅表(左表)的所有元组,而外连接列出了信息表(右表)的所有元组(我们要查询的列)**

2025-03-24 21:27:04 1018

原创 计算机网络精讲day2———计算机网络的性能指标(下)

表示这样的链路可以容纳多少个比特,我们从量纲的角度考虑,时延的单位是秒,带宽的单位是比特每秒,两者相乘的量纲就是比特也就是时延带宽积的单位,我们假设链路的传播时延是20ms,带宽为10Mbit/s,则可以算出。这就表明,若发送端连续发送数据,则在发送的第一个比特即将到达终点时,发送端就已经发送了20万个比特,而这20万个比特都在链路上向前移动,因此链路的时延带宽积又称为以比特为单位的链路长度。发送时间=(数据长度)/(发送速率)=100乘pow(2,20)乘8/100乘pow(10,6)=8.39s。

2025-03-23 13:15:20 1095

空空如也

空空如也

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

TA关注的人

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