自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 两阶段提交进阶

如果没有两阶段提交,一旦在提交阶段发生了故障,可能会导致数据的更新操作部分应用到了数据库中,而另一部分未能成功应用。上一节我们讲了,两阶段提交逻辑上的表现,其实较为肤浅,并且偏向理论,可能大家都能看懂,但是如果放入实际的mysql应用中并联系事务和日志进行分析,又会怎么样呢?如果没有两阶段提交,可能会导致已经提交的事务对数据的修改丢失,或者未提交的事务对数据的修改被错误地应用到了数据库中。(在这个过程中,其实redo和undo作用和单体数据库作用是一样的,都是维持单体数据库的持久性和一致性);

2024-04-17 21:33:45 784

原创 使用urfave/cli实现命令行备忘录

于是就写了一个基于github.com/urfave/cli包的简单命令行备忘录demo;功能很简单,代码也并不是很复杂,当作入门来看还是很不错的;当然,学这些工具并不是就是为了去实现一个简单备忘录,在这个学习的过程中能了解到很多新鲜的东西亦能拓宽我们的视野,比如说,知道了黑窗口中各种命令究竟是如何去实现的,为什么go语言适合去制作这种命令行工具,shell脚本如何去实现的,docker,数据库命令,git等等的命令原理,这有助于我们对计算机整体知识和底层的理解;

2024-04-17 16:42:56 696

原创 24年蓝桥杯java-b组

首先每组K个人,那么一共有N/K个组,遍历K从小到大改变,计算每次的期望,期望算法:感染概率为p,那么没感染概率为(1-p),一个组中,所有人都没感染概率Math.pow((1-p),i);这道题很多人纠结于程序如何结束,题目中并没有详细给出,所以好多人做起来很难受,不知道如何下手,其实没结束那就不结束就好了,每次进行查询操作,都把最新的同步输出去就行了,即程序输入并不需要结束运行,而是做到边输入边输出;思路:先分桌子,桌子一个一个分, 先分6人桌:3+3,4+2,2+2+2,3+2, 4,3;

2024-04-17 10:53:46 770 3

原创 分布式事务的具体实现:两阶段提交(2PC)

分布式事务“顾名思义,指的是涉及到多个分布式系统或者多个数据库的事务操作。在分布式系统中,如果一个事务涉及到多个独立的组件或者服务,每个组件或服务可能位于不同的物理节点上,那么这个事务就被称为分布式事务。在分布式系统中实现分布式事务是一个复杂的问题,因为涉及到多个独立的组件或者服务,可能存在网络延迟、通信故障、节点故障等因素。为了保证分布式事务的一致性和可靠性,需要使用合适的事务管理协议和机制,如两阶段提交(2PC)、三阶段提交(3PC)、基于消息的事务、分布式事务管理器等。

2024-04-15 16:39:23 917

原创 蓝桥杯22年javaB组省赛真题

如果不考虑全部情况,这道题是拿不到满分的,因为中间值可能连续出现很多个,先说基本思路,先对所有初始值排序,并找到中间值是多少,然后从中间值两边遍历,统计出中间值左侧不等于中间值的数多,还是右侧不等于中间值的数多,然后对原数组遍历,根据和中间值的关系使用不同的方案;即,末尾0应该是最小单位2*5组成的,又2很容易很多,只用查询有多少个5就行了,再看题目k范围比较大就不能暴力查找了,用二分查找会好很多,因为整个的阶乘是已经自然排好的;本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

2024-04-07 14:32:46 464 1

原创 23年蓝桥杯javaB组

23年蓝桥杯当时并没有参加,不过打算参加24年的蓝桥杯,于是打算复习下23年的题目,哦,不做不知道,做了几道题后评价一下,真的是老🐷上🏠,;😂发现蓝桥杯的题目都是偏思维,和立扣的题目还是有很大差别的;想要参加蓝桥杯的话,一定要将往年的真题都看一看;话不多说,上题目!

2024-03-30 21:42:38 804

原创 操作系统进程线程相关知识点总结

死锁(Deadlock)是指在多个进程或线程之间,彼此持有对方所需资源而无法继续执行的情况,导致所有参与者都陷入了无法解脱的僵局状态。在死锁中,每个进程都在等待其他进程释放资源,而无法释放自己所持有的资源,从而导致所有进程都无法向前推进。互斥条件(Mutual Exclusion):至少有一个资源必须是被独占的,即一次只能被一个进程使用。这意味着当一个进程持有了某个资源时,其他进程必须等待。请求与保持条件(Hold and Wait)

2024-03-24 10:45:59 877

原创 常见的操作系统进程调度策略

在实际应用中,可以根据系统的特点和需求选择合适的调度算法,甚至可以将抢占式和非抢占式调度算法结合起来,以充分发挥各自的优势。该算法根据进程的等待时间和服务时间来计算响应比,然后选择具有最高响应比的进程优先执行,以确保长时间等待的进程能够及时得到服务。抢占式优先权调度算法是一种按照进程优先级来选择下一个要执行的进程的算法,允许优先级较高的进程抢占正在执行的进程,立即获得CPU资源。短作业优先调度算法能够最大程度地减少平均等待时间,提高系统的吞吐量,但需要预先知道每个进程的执行时间,对实时系统的适用性较差。

2024-03-24 10:20:33 687

原创 加密算法详解

应用:1.由于其确定性,在存储密码时通常将密码和自己设置的字段相加后再生成哈希,防止黑客暴力破解;又由于不可逆行,即使是内部员工也不可能知道用户真实密码是什么,因为密码在传入后台后会直接进行加密再和数据库中数据比较;2.说到哈希不得不再提一下token的生成了,我们都知道token有三部分组成,第一部分是token的加密算法和令牌类型第二部分说明存储的数据,包含确定用户唯一性的信息,权限等。

2024-03-16 21:25:47 742 2

原创 基础数据类型及加密算法讲解

应用:1.由于其确定性,在存储密码时通常将密码和自己设置的字段相加后再生成哈希,防止黑客暴力破解;又由于不可逆行,即使是内部员工也不可能知道用户真实密码是什么,因为密码在传入后台后会直接进行加密再和数据库中数据比较;2.说到哈希不得不再提一下token的生成了,我们都知道token有三部分组成,第一部分是token的加密算法和令牌类型第二部分说明存储的数据,包含确定用户唯一性的信息,权限等。

2024-03-16 20:55:16 718

原创 GO语言接入支付宝

在传输的过程中谁都可以获取到这个信息并对其使用公钥进行解密,所以这不是加密和解密的场景,因为这个过程注定无法保密,这个过程是用于验证发送者的身份的,因为在网络上的信息是可以被获取和篡改的,如果私钥只有一人拥有,使用私钥进行加密,获取到这个加密后的数据之后,拿着公钥进行解密,如果能够解开,说明了发送者的身份就是私钥的拥有者,而这种身份的证明和不可抵赖性则是这个使用中最为重要的关注点,而传输的内容则不是关注的内容。在支付领域,异步通知通常用于处理支付结果的通知,例如支付成功或失败的通知。

2024-03-09 09:58:22 982

原创 mysql中Select执行全过程

如果 SQL 是查询语句(select 语句),MySQL 就会先去查询缓存( Query Cache )里查找缓存数据,看看之前有没有执行过这一条命令,这个查询缓存是以 key-value 形式保存在内存中的,key 为 SQL 查询语句,value 为 SQL 语句查询的结果。对于mysql连接,需要先经过tcp的三次握手,若密码都没有问题,会验证用户权限,然后保存起来,后续该用户在此连接里的任何操作,都会基于连接开始时读到的权限进行权限逻辑的判断。修改完成后,只有再新建的连接才会使用新的权限设置。

2024-02-26 09:21:41 1008

原创 栈和队列入门,小白看过来!!

栈(Stack)和队列(Queue)是计算机科学中常用的数据结构,它们用于管理和组织数据。

2024-02-25 16:32:26 269

原创 计算机网络:数据链路层

解读这道题,就是原数据是101001,为了给他加上冗余码,先给出一个条件:除数P=1101(有时会说是x的三次方+x的平方+1),看x最大次方是3,所以原数据后+3个0进行除法运算,不同为1,相同为0,,**计算出的余数叫做帧检验序列FCS,**最后算出结果加到原数据的后边,即为发送出去的数据,对方拿到数据后,也用数据除除数,若数据中间没有发生变故,被除数必然是为0.说明数据正确。在接收端,接收到的数据帧会被解析,根据帧头中的控制信息提取出数据,并进行后续的处理和传递。(先讲基础功能,最后再说协议)

2024-02-22 15:23:45 1049

原创 计算机网络:物理层详解

它的工作原理是通过接收来自源设备的信号,重新放大它,并将放大后的信号传输到目标设备,从而弥补信号在传输过程中因为传输距离、信号衰减等原因而产生的损失。要注意的是,分组交换分成很多组,不同的组能走不同的路线前往目的地,并且可能还会用不同的方法传输数据:虚电路方式,数据报方式。随着技术的发展,集线器逐渐被更先进的网络设备如交换机所取代,交换机具有更高的性能和更智能的数据转发能力。需要注意的是,由于集线器是一种物理层设备,它只在数据链路层的物理层进行操作,并且。只用知道:双绞线,同轴电缆,光纤,无线传输介质。

2024-02-22 15:22:21 1167

原创 计算机网络看这里就够了!!!

一些基础概念因特网发展阶段:三个大标题:从单个ARPANET-----逐步建成三级结构的因特网----逐步形成多层次ISP结构(互联网服务提供商(Internet Service Provider)的因特网一些专有名词单位。

2024-02-20 15:20:58 1209

原创 三次握手,四次挥手的大白话版本

首先我们要知道握手和挥手是在做什么,握手是为了让客户端和服务端建立连接,挥手是为了让客户端和服务端断开连接,握手时客户端主动发起请求,挥手双方都能发起请求。

2024-02-20 10:44:04 458

原创 docker的基本使用

Docker是一种用于开发、部署和运行应用程序的开源平台。它基于轻量级容器技术,提供了一种封装应用程序及其所有依赖项的方式,使得应用程序可以在不同的环境中一致地运行。Docker的主要优势包括环境一致性、快速部署、轻量级和资源隔离。它在DevOps、持续集成和微服务架构中得到广泛应用,成为现代应用开发和部署的标准之一。

2024-02-19 15:11:31 708

原创 0成本部署github前端项目流程

但是Vercel由于不可抗力因素,包括官网在内的网站在国内都无法访问,你懂的,用户是无法进入的而且这个生成的网站链接也并不好看所以需要我们自己准备一个域名,新用户可以随便去个国内域名商先领个一年免费的,这个也不会推荐先去b站找视频学习下,然后以阿里云为例:点击域名对应后边的解析点击添加记录我们现在的操作是让我们的域名指向刚刚生成的网站,记录类型选CNAME主机类型随便写,是域名前缀,记录值就写成自己刚刚Vercel生成的网站链接。

2024-02-19 09:21:41 1712

原创 redis在go中的基础命令和示例

为了提高学习效率和增加linux命令的记忆,将命令分为九大类。

2024-02-18 09:47:12 564

原创 linux基础常用命令加示例

为了提高学习效率和增加linux命令的记忆,将命令分为九大类,更方便学习和查漏补缺,在之后复习的时候也能有重点。

2024-02-18 08:50:40 619

原创 redis在go语言中的使用

之前的Set方法中,最后一个参数是0,表示的就是过期时间设置,默认以秒为单位,当为0时,表示永不过期,写10,就是10s后过期,写其他单位的数字就需要加单位,如1*time.Minute就是1分钟;redis使用的是5.0.14的windows版本(正常开发项目redis都是在linux上使用,windows的redis版本很低),但基础功能都有,满足学习要求;左侧会显示key,点击后右侧会显示value的值,使用和查找起来较为方便,能够增加学习效率,当然还有很多功能,这里就不赘述。

2024-02-18 08:12:16 1205

原创 二叉树入门算法题详解

了解后知道其实二叉树就是特殊的链表,只是每个根节点节点都与两个子节点相连而其实图也是特殊的链表,是很多节点互相连接;这样说只是便于理解和定义,在使用中还是要牢记各种数据结构的性质的。

2024-02-17 11:14:00 1612 1

原创 go学习之air库的使用

进入后,有bin,pkg目录,进入bin目录,你能看到air.exe文件。之后你需要去找到库下载的地方,若使用的是go mod可以使用命令。保存后,打开cmd输入air -v检验是否配置成功。配置成功,之后每次保存项目都会自动运行了。这时候将此文件目录设置成path环境变量。

2024-01-28 15:09:53 453

原创 写立扣mysql题目收获

on-把表都连接起来,再用not in查询不在范围内的,即。难点:知道concat,upper,left,right关键字的用法;编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。这些只是写了30多道题总结的,只后会更新关键字,直到刷完100题~!熟练一眼就能看出答案,但如果不知道if这个关键字就会很麻烦。从中也能发现sql学习是建立在熟练使用关键字的基础上的!也可以用多个where,select一步步查询,即。学习中的易错点和有趣的题目。,反之亦然),仅使用。,且不产生中间临时表。

2024-01-26 17:45:07 685

原创 学习gin框架知识的注意点

在我看来,controller层最大,logic以实现controller层的业务而出现,dao层最小,以实现logic层中的数据库操作为己任;

2024-01-26 08:28:09 1176

原创 sqlx的初体验

sqlx是一个用于 Go 语言的数据库工具,它在标准库的包的基础上提供了一些额外的功能,使得数据库操作更加方便和灵活。

2024-01-26 08:26:30 691

原创 gin博客项目开发日志1

看到网上有很多语言写的博客系统,但go的却很少,正好,现在我在学go,可以拿博客来练练手,为什么选博客呢?博客系统主要能用于发表自己的观点、经验和知识。它可以提供一个平台,能让我和朋友们创建、编辑和评论文章,这样既能练习增删改查的能力,可扩展性和实用性也是一绝,在之后仍然能加入很多功能,是小白练手,老白回顾的无二之选!

2023-12-10 13:12:35 348

原创 web项目创建流程框架

需要实现用户登录,创建投票项目,用户对不同投票项目中不同选项的投票,各种票数分析;总的来说,对此项目,需要建4张表,用户表,投票项目表,选项表,关联表;,一个项目可以有多个用户参加,一个用户能参加多个投票项目,:go,gin,gorm,mysql,前端各种工具等。进行定期的系统更新和维护 ,确保系统安全和稳定。设置系统监控和日志,及时发现和解决潜在问题。不管怎样,写项 目第一步永远是。不管怎样,写项 目第一步永远是。不管怎样,写项 目第一步永远是。,一个项目对应多个选项,,所以至少需要四张表。

2023-12-10 11:29:01 235

原创 gin投票项目5

SQL注入是一种常见的安全漏洞,它发生在应用程序未正确验证用户输入,并直接将用户提供的数据嵌入到SQL查询中。攻击者通过巧妙构造恶意输入,试图修改SQL查询的逻辑,从而执行非法的数据库操作。

2023-12-10 11:27:06 316

原创 gin投票项目4

对应视频v2版本。

2023-12-10 11:25:56 341

原创 gin投票系统3

先分析需求,在sql中建立数据库,成功后目前有四个表:建立数据库,可以使用网上的sql转gorm网站,把建表语句直接转换成结构体,放在model下的model.go文件下,作为全部数据库存放处建立完成,可以先测试是否成功。

2023-12-10 11:24:05 643

原创 gin投票系统2

先分析需求,在sql中建立数据库,成功后目前有四个表:建立数据库,可以使用网上的sql转gorm网站,把建表语句直接转换成结构体,放在model下的model.go文件下,作为全部数据库存放处建立完成,可以先测试是否成功。

2023-12-10 11:22:06 450

原创 Cookie和Session的区别与联系

session适合做客户的身份验证,cookie适合保存用户的个人设置,爱好等。通常会将Session ID 存储在Cookie中,以便在用户的请求中传递。Cookie是存储在客户端的,可以被用户禁用或删除。安全性上,因为Session数据存储在服务器端,相对较安全,而Cookie中的信息可能被用户篡改。例子:在 Gin 框架中,Session 和 Cookie 是用于处理用户身份验证、状态管理等方面的重要机制。会话ID通常存储在Cookie中,因此Cookie在某种程度上用于实现会话。

2023-12-10 11:18:26 103

原创 HTML_web扩展标签

结构标签:合并单元格:更多请查看主页。

2023-12-03 09:59:50 40

原创 前端入口教程_web01

### 绝对路径–用来插网上找的图片。html:表示整个页面。注释:ctrl+/;

2023-12-03 09:57:04 175

原创 Bert-VITS2本地部署遇到的错误

需要下载C++ 14.0,但按照链接下载内存高达10g,所以找到网上的方法;直接把下载链接挂出,只需要下载C++相关,速度灰常快,2分钟结束。我是放到最后一个发现不管用,放到第二个就好了,嫌麻烦可以和我一样。关于Bert-VITS2本地部署遇到的错误。1、在下载python中相关依赖时报错。2、在打开推理网页报错。

2023-11-29 22:26:06 733

原创 双指针算法题入门

双指针法是一种常用于数组或链表的算法思想,它通过维护两个指针,在特定条件下,以不同的步进方式移动指针,从而解决一些问题。双指针法包括快慢指针、左右指针等不同的变种,用于解决不同类型的问题。

2023-11-29 22:20:50 396

原创 go标准库

接口的实现可以用于从不同类型的数据源(如文件、网络连接、内存缓冲区等)读取数据,并将数据存储到提供的字节切片中。(缩写自"buffered I/O")是Go语言标准库中的一个包,用于提供缓冲读写功能,以提高I/O操作的效率。这些接口定义了读取和写入数据的通用方法,为不同类型的数据源和数据目标提供了统一的接口。接口的实现可以用于将数据写入不同类型的数据目标(如文件、网络连接、内存缓冲区等)。:用于将数据写入缓冲区,当缓冲区满时,它会将数据刷新到底层的。的缓冲区,确保缓冲中的数据被写入底层。

2023-11-28 22:35:28 832

原创 贪心算法(新坑)

则上升次数=下降次数+1,下降次数=上升次数+1;以上边示例为例,即第一步跳的范围是1到2,选出跳1或2能到达的最大下标其实就是局部最优,一直选跳下一步可以获得的最大覆盖,(选3能覆盖到下标4的位置,选1只能覆盖到下标2的位置),这就是本题思路;看这个图就懂了,与其说能跳多远,其实就是覆盖范围有多少,即可以写出每个下标对应范围合到一个共同的范围,最后检测范围的最右端,如果刚好是最后一个下标就说明全覆盖,小于就说明覆盖不到。最优的是大饼干分给胃口大的,能一口吃饱,或者从小的开始,小饼干喂饱小的,能一口吃饱。

2023-11-28 22:31:50 2145

空空如也

空空如也

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

TA关注的人

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