自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MVCC实现原理分析

如果被访问版本的trx_id,与readview中的creator_trx_id值相同,表明当前事务在访问自己修改过的记录,该版本可以被当前事务访问如果被访问版本的trx_id,小于readview中的min_trx_id值,表明生成该版本的事务在当前事务生成readview前已经提交,该版本可以被当前事务访问.如果被访问版本的trx_id,大于或等于readview中的max_trx_id值,表明生成该版本的事务在当前事务生成readview后才开启,该版本不可以被当前事务访问.

2024-07-22 09:20:29 675

原创 详解TCP流量控制和拥塞控制

当接收方发现丢了一个中间包的时候,发送三次前一个包的 ACK,于是发送端就会快速地重传,不必等待超时再重传。Seq2丢失后,后续发送Seq3、4、5的时候,都是返回了ACK2,当返回三个相同ACK的时候,会在定时器过期前,重传丢失的报文段。这时,如果接收方出现了缓存区,但是告诉发送方时候,ACK丢失了,那么发送方将一直不知道窗口大小可以变了吗?接收方的ACK应答丢失了,发送方以为没发出去,就重发了,于是接收方收到重复数据后,告诉发送方真相。当重复传输的时候,告诉发送方,真正的原因。开始进入线性增长阶段。

2024-07-19 20:06:06 954

原创 输入URL到网页显示中间经历了哪些过程?

浏览器先对URL进行解析,从而生成发送给web服务器的信息。

2024-07-18 11:15:06 717

原创 GMP调度模型解析

Goroutine是轻量级的协程,被放置在P处理器中。M是操作系统的线程,一个M线程一次只能执行一个P处理器中的一个Goroutine。调度器负责在多个M线程和P处理器之间公平地分配Goroutine,以实现高效的并发执行。

2024-07-12 17:21:11 776

原创 Linux常用基础知识汇总

linux基础知识,带你快速入门linux!!!

2024-06-28 18:30:07 962

原创 Mysql从数据页的角度理解B+树查询

InnoDB的数据按 数据页 为单位来读写的,默认数据页大小为16KB。每个数据页之间通过双向链表的形式组织起来,物理上不连续,但逻辑上连续。每个数据页内包含用户记录,每个记录之间用单向链表的方式组织起来,为了加快在页内查询速度,设置了页目录,页目录存储的是各个槽(分组),且主键值有序,此时便可通过二分快速查找。数据页多的情况下,InnoDB采用B+树作为索引,每个节点都是一个数据页。叶子节点存储的数据就是实际数据那就是聚簇索引,一个表只能有一个聚簇索引;

2024-06-08 21:01:49 693 3

原创 rabbitmq-service.bat install exited with code 1 解决方案

最新在安装rabbitmq,在安装到最后一刻的时候,弹出来来了这个问题,网上搜了很多教程,花费了好几个小时,发现大多都不管用!!!在这里记录一下,我解决的方法。首先介绍一下我的 erlang版本26.2.5;rabbitmq版本3.13.2在安装弹出这个界面后,我们可以打开安装详情看见以下这个问题说明 这是 rabbitmq service 安装时的权限不足导致的。

2024-05-26 10:00:46 836 2

原创 mysql中锁机制的介绍

锁定数据库中的所有表。对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。其典型的使用场景是做全局的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性。缺点:​ 如果在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆。​ 如果在从库上备份,那么在备份期间从库不能执行主库同步过来的二进制日志,会导致主从延迟。添加全局锁释放全局锁。

2024-05-26 08:16:27 879

原创 Go的垃圾回收机制

垃圾回收就是对程序中不再使用的内存资源进行自动回收的操作

2024-05-25 22:00:10 1014

原创 golang操作阿里云oss实现文件上传

OSS指的是对象存储服务,是一种用于存储和检索大量非结构化数据(例如图片、视频等)的云计算服务。OSS提供了高可用性、可扩展性和安全性,并且可以通过互联网进行访问。对象存储服务通常以存储桶(Bucket)和对象(Object)的形式组织数据。存储桶是存储的容器,类似于文件夹,而对象是存储的实际数据,可以是任意类型的文件或数据。

2024-05-02 10:06:16 339 1

原创 Go实现简单的命令行应用(记事本)

我们首先介绍一个用于构建命令行应用程序的go语言包:。它提供了一组功能强大且易于使用的工具,用于定义命令、解析命令行参数、执行命令以及处理应用程序的输入和输出等任务。下面简单介绍一下这个包的使用1.2 设置应用程序的名称、版本和用法说明1.3 添加程序的命令部分参数介绍:1.4 最后运行应用程序二、实现记事本的功能我们注意到上面1.3中介绍了每个命令都有对应的执行函数。那么接下来我们把对应的函数实现一下就可以了2.2 删除某条记录获取命令行中要删除的 id读取记事本中所有内容存

2024-04-20 15:05:30 434 1

原创 MySQL事务为什么要两阶段提交?

两阶段提交中的两阶段分别是准备阶段(Prepare)和提交阶段(Commit)。确保了事务的原子性和统一性。

2024-04-17 21:00:16 818

原创 MySQL三大日志详解(Undo log、Redo log和Binlog)

Mysql的数据都是存在磁盘中的,当有一条记录需要更新的时候,InnoDB 引擎就会先更新内存(同时标记为脏页),然后将本次对这个页的修改以 redo log 的形式记录下来,这个时候更新就算完成了。后续,InnoDB 引擎会在适当的时候,由后台线程将缓存在 Buffer Pool 的脏页刷新到磁盘里,这就是WAL (Write-Ahead Logging)技术。WAL 技术指的是, MySQL 的写操作并不是立刻写到磁盘上,而是先写日志,然后在合适的时间再写到磁盘上。

2024-04-17 15:50:09 1116

原创 Javaweb在线购物商城-完整源代码-课程设计

这是一个基于JavaWeb的在线购物商城系统。主要用实现,数据库用的mysql。你是否还在被课程设计而折磨呢?当你看到这篇文章也许会给你带来帮助!!!下面一张图告诉你,系统有哪些功能!如果需要完整源代码,可以直接跳转到文章尾部。

2024-04-15 16:00:56 3385 1

原创 linux宝塔面板部署goweb项目

1.1 先去获取想要下载go版本的链接,然后去宝塔终端下载1.2 去刚才下载的文件路径中 打开终端,解压刚才下载的安装包1.3 添加go到环境变量1.4 立即生效1.5 检测go版本go version1.5 设置Golang的GOROOT和GOPATH1.5.1:Golang的安装目录,即/usr/local/go1.5.2:Golang项目的路径,可自定义,例如/golang/blogs-golang1.5.3 立即生效。

2024-04-01 08:52:00 777

原创 WebSocket在gin中的使用—实现群聊和私聊

WebSocket是一种在客户端和服务器之间建立持久性连接的通信协议,它允许客户端和服务器之间进行全双工通信。

2024-03-24 11:06:06 1151 1

原创 ngrok实现内网穿透

内网穿透就是在不暴露整个内部网络的情况下,让外部用户能够访问位于内部网络中的设备、服务或应用程序。通俗的讲,就是你的网络不在局限于局域网内访问,其他人也可以进行访问你的网络。在实际运用中,你在本地跑起来一个项目,内网穿透后,其他人可以也可以访问你的项目了。

2024-03-16 10:23:15 306

原创 漏桶和令牌桶的限流策略

我们可以简单理解为:有一个漏桶,然后不断往这个漏桶里面加水,无论加多少水,这个漏桶流出的速率是固定的,不会因为流入水的多少而改变,从而实现了水流控制,也就是限流操作。具体的说,令牌桶算法会不断的生成令牌并放入到令牌桶中,每个请求在执行之前,都需要从令牌桶中获取一个令牌,如果此时获取不到令牌则需要等待,直到令牌桶中有令牌为止。然后创建一个令牌桶,从令牌桶中获取令牌,如果每次最少能获取一个,如果此时令牌桶里有令牌,请求可以执行,如果没有令牌,则中止当前的请求。我们用下一滴水滴下落时间。

2024-03-08 15:55:37 195

原创 Git操作远程仓库及分支的使用

常规分支(Regular Branch):常规分支是指代码仓库中的主要分支,通常是用于存放稳定的、生产可用的代码版本。在常规分支上进行的更改会直接影响到项目的生产环境。在 Gitee 中,通常情况下,master 分支就是常规分支,开发者们会将稳定的、经过测试的代码合并到 master 分支中。保护分支(Protected Branch):保护分支是指在代码仓库中被设置了额外限制或权限的分支。这些限制可以包括阻止普通开发者直接向该分支推送代码、要求代码审查通过后才能合并等。

2024-02-29 20:38:15 1684

原创 Centos7安装docker(图文详细教程)

这样一个流程下来就可以 在 centos7上 完成 docker的安装了!

2024-02-22 20:26:16 598

原创 CSRF和XSS攻击详解及区别

CSRF(Cross-Site Request Forgery)攻击是一种利用用户已登录的身份,欺骗用户在未经其同意的情况下对某个站点发起请求的攻击方式。攻击者利用用户在其他站点中的登录状态,通过伪造请求,使用户在不知情的情况下执行了恶意操作。

2024-02-22 08:08:18 1008 1

原创 带你快速上手gorm一一基础知识汇总

orm即Object-Relational Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。

2024-02-20 16:56:19 1219

原创 Redis三大缓存问题及解决方法(雪崩、击穿、穿透)

当大量缓存数据在同一时间过期(失效)或者Redis故障宕机时,如果此时有大量的用户请求,都无法在Redis中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃,这就是缓存雪崩的问题。缓存击穿:针对某一个key(热点数据)的请求,大量并发请求都查询这一个数据,但是该数据不在缓存中,导致多请求直接访问数据库,而其他请求被阻塞等待该请求的返回结果,导致系统性能下降。导致大量请求直接到达数据库,导致数据库瞬间压力骤增,设置宕机。

2024-02-18 22:15:00 2948

原创 Redis中过期删除策略和内存淘汰策略

衰减的值 跟前后访问时间的差距有关系,如果上一次访问的时间与这一次访问的时间差距很大,那么衰减的值就越大,这样实现的LFU算法是根据访问频率来淘汰数据的,而不是访问次数.传统的LRU算法是基于 「链表」结构,链表的元素按照操作顺序从前往后排列,最新操作的被移动到表头,每次需要淘汰数据的时候,只需要选择链表尾部的即可。Redis的回收机制不会回收没有设定过期时间的数据,只会回收设置了有效期的。对logc的增加操作,也并不是单纯的 +1,而是根据概率增加,如果logc越大的key,它的logc就越难再增加。

2024-02-17 20:58:08 1028

原创 Redis常用数据类型及应用场景

例如用户一的 Session 信息被存储在服务器一,但第二次访问时用户一被分配到服务器二,这个时候服务器并没有用户一的 Session 信息,就会出现需要重复登录的问题,问题在于分布式系统每次会把请求随机分配到不同的服务器。例如,可以将任务的优先级作为Sorted Set中的分数,任务的标识作为Sorted Set中的成员,然后可以按照优先级获取任务。例如,可以将用户的分数作为Sorted Set中的分数,将用户ID作为Sorted Set中的成员,然后根据分数对用户进行排名。

2024-02-17 15:30:00 743

原创 golang中引入redis

像一些需要频繁访问的数据就可以缓存到Redis中,可以加速数据的访问,同时也减轻了底层数据库(如Mysql)的压力,提高系统整体性能。这是我们最直观能感受到的一个优点。还有一些Redis的列表和发布/订阅功能可以方便的构建简单且高效的消息队列系统。还有原子操作和有序集合功能可以非常方便的实现计数器,排名,排行榜等功能。redis有着 快速、可扩展、持久化、多语言支持、丰富的功能和优秀的缓存执行等优点。将键名为 “score” 的键值存入到 redis数据库中,设置键的值为 100。

2024-01-29 08:00:00 282

原创 Gin项目中简单使用viper

viper 可以简单理解为就是存储处理所有类型的配置信息的。如果这些Get方法寻找不到对应的值,则都会默认返回零值。

2024-01-28 20:00:00 465

原创 Gin项目中添加zap日志

在项目中我们可以根据需要是使用方法来记录自定义日志信息。zap.L().Debug("日志初始化成功")zap.L()返回一个 全局的 日志记录器,通过该记录器可以进行日志的输出Debug()是记录器提供的一个方法,用户输出调试级别的日志信息("日志初始化成功")是要输出的具体日志信息内容。除了 Debug() 还有其他一些的方法Info(): 输出信息级别的日志消息。Warn(): 输出警告级别的日志消息。Error(): 输出错误级别的日志消息。DPanic()

2024-01-28 15:30:00 1925

原创 Gin项目中使用JWT

先把使用的包给导入到项目中创建一个生成 token的函数,注意要在这里设置一下 密令的内容和过期时间接着就要去调用这个生成函数了。我这里在登录成功后调用这个函数,然后生成token为了测试,直接用静态数据进行传值了。这里 在密令头部加上。Bearer是一个认证方案,用于指定请求中所有的身份验证类型。Bearer 可以告诉服务器,请求中含有一个JWT Token,而不是其他类型的令牌或验证方式。

2024-01-26 20:03:11 818

原创 HTML5+CSS3实现华为商城和购物车(课程设计大作业)

这是我用HTML5+CSS3实现的华为商城和华为购物车页面其中华为商城有二级页面!页面结构相对简单不太复杂,适合给大家当个课程设计作业!还有一些其他关于华为的页面,比如登录、购物车、官网之类的,都放在文章末尾网盘里面了!还有一些其他类型的页面大家可以参考一下,每个网页都很有特色HTML5+CSS3+JS实现小米商城和购物车HTML5+CSS3实现小米商城HTML5+CSS3实现小米官网HTML5+CSS3实现哔哩哔哩主页HTML5+CSS3实现QQ注册页面HTML5+CSS3实现华为官网

2023-11-26 21:30:07 3036

原创 gin框架中的数据绑定

数据绑定:能够基于请求自动提取 JSON、form表单和QuertString类型的数据,并把值绑定到后端指定的结构体对象中去。Gin框架中的数据绑定功能可以简化请求参数的获取、验证和转换过程,减少了重复代码的编写,使代码更加清晰和可读。

2023-11-25 20:01:38 476

原创 gin框架生成和验证图像验证码

这里使用Go语言的一个包 base64Captcha 来生成和验证图像验证码。使用base64Captcha包,可以方便地生成验证码,并在服务器端进行验证。它提供了一些配置选项,如验证码的长度、宽度、高度、字体样式、噪点等,以及验证结果的检查。base64Captcha 包的一些主要功能:1.生成图像验证码:可以生成包含随机字符或数字的图像验证码。2.Base64编码:将验证码图像以Base64编码的形式返回,方便嵌入到HTML页面或通过API返回给客户端。

2023-11-25 15:00:11 598

原创 关于go中切片的基础知识

当切片作为函数的参数时,因为切片本就是指定了底层数组,数据都在底层数据,所以 函数接收切片当参数时,指针还是传递给了底层数组,所以对切片的任何操作,都会在底层数组实现,所以 函数中对切片的修改,都会影响原切片数据。将切片作为参数传递:当将切片作为参数传递给函数时,如果函数内部需要修改切片,并且修改后的切片长度超过了元切片的容量,就需要扩容。函数实现的,它将原有的元素逐个复制到新的底层数组中。在切片扩容时,Go 运行时会创建一个新的底层数组,并将原有的元素复制到新的底层数组中,然后将切片指向新的底层数组。

2023-11-24 19:38:30 423

原创 idea中导入Javaweb项目后如何重新配置tomcat

本篇文章讲解一下在idea中导入javaweb项目后,如何重新配置tomcat

2023-11-24 14:10:40 1298

原创 HTML5+CSS3实现小米商城和购物车(课程设计大作业)

用的是HTML和CSS和JS做的小米商城首页和一个小米的购物车案例!项目末尾有项目完整源代码,其中 小米商城用 js 实现了和以及购物车页面实现了以及还有华为和小米和哔哩哔哩的一些其他相关页面就不在这里展示了,如果需要了可以后台私信我!那话不多说,先展示一下我的这两个页面实现效果吧!

2023-11-24 10:00:04 3233 1

原创 DataGrip导出sql文件

在用Datagrip导出sql文件的时候,最重要的是选择数据库备份数据目录(Path to mysqldump),不然那个导出按钮就会一直是黑色的,不让点。

2023-11-23 19:26:03 3457

原创 Ajax在不同场景下的运用(基础篇)

Ajax 就是一种用于在网页中进行异步通信的技术。一般情况下使用Ajax 就是为了让网页的数据和后台的数据进行实时交换,在不刷新页面的情况下,就可以将数据传入到后台或从后台获取到最新数据。使用Ajax主要还是用来提高网页的响应速度和交互性,实时动态的加载内容,表单验证,无刷新提交等功能。顺便在这里比较一下异步和同步之间的区别。

2023-11-23 15:20:23 50

原创 Javafx+Mysql实现超市信息管理系统(课程设计完整版)

本篇文章讲的是JavaFx+Mysql实现的超市信息管理系统,适合当做一个课程设计来看,文章末尾附项目完整源代码!!!同时文章中也有一些其他管理系统,比如Javafx+Mysql实现学生信息管理系统,图书管理系统等等,大家有问题及时与我联系

2023-11-18 22:26:38 591 1

原创 HTML5+CSS3实现华为鸿蒙官网(课程设计完整版)

这是一个用HTML5+CSS3实现的一个华为鸿蒙官网。文章结构相对简单,容易理解。适合学生当课程大作业使用!同时如果因要满足作业要求而需要修改内容的也可以联系我!下面是一些其他页面的作品,同样希望能给大家带来帮助!最重要的是!!!文章末尾附项目完整源代码!!!HTML5+CSS3实现华为商城HTML5+CSS3实现华为官网HTML5+CSS3实现小米商城HTML5+CSS3实现小米官网HTML5+CSS3实现哔哩哔哩首页HTML5+CSS3实现QQ注册页面话不多说直接进行项目展示,看是否

2023-11-06 17:00:38 627

原创 HTML5+CSS3实现华为商城(课程设计完整版)

这个是用HTML5+CSS3实现的一个华为商城的页面,并且实现了二级页面。结构相对简单不复杂,适合在校生当课程设计,当然 如果你的需要其他的网页作品可以移步我的其他作品,或者点击下面的“传送墙”!希望可以帮助到大家,有什么问题可以联系我或者在评论区指出!文章末尾附项目完整源代码。HTML5+CSS3实现小米商城HTML5+CSS3实现华为官网HTML5+CSS3实现哔哩哔哩首页HTML5+CSS3实现小米官网HTML5+CSS3实现QQ注册页面话不多说,直接展示项目运行效果!因为文章篇

2023-11-06 16:50:26 2030

空空如也

空空如也

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

TA关注的人

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