- 博客(46)
- 收藏
- 关注
原创 MySQL分页查询--LIMIT、OFFSET
MySQL分页查询如何实现?LIMIT\OFFSET如何使用?使用LIMIT\OFFSET会出现哪些问题?深分页问题如何解决?
2024-08-24 14:11:57 437
原创 Go--GMP调度模型
Go中的GMP是怎么调度的?调度时机?goroutine什么时候会被挂起?同时启动了一万个goroutine,会如何调度?
2024-08-13 21:55:40 917
原创 TCP和UDP协议
在 TCP 或者 UDP 发送具体的报文信息前,需要先经过一扇 门,这个门就是套接字(socket),套接字向上连接着应用层,向下连接着网络层。在操作系统中,操作系统分别为应用和硬件提供了接口(Application Programming Interface)。而在计算机网络中,套接字同样是一种接口,它也是有接口 API 的。使用 TCP 或 UDP 通信时,会广泛用到套接字的 API,使用这套 API 设置 IP 地址、端口号,实现数据的发送和接收。
2024-08-10 21:57:55 883
原创 超详细版阿里云控制台环境配置+数据库配置
登录阿里云控制台,找到实例,切到阿里云服务器所在地址🍭不知道自己的服务器地址在哪边也没有关系,随便选择一个,查询不到记录的话会有以下提示,可以根据提示进行切换(适用于账号中只有一个服务器的情况)🍭。
2024-07-08 22:11:42 1369
原创 阿里云服务器开放端口配置安全组
选择手动添加安全组,如下图,填写相应的信息然后点击保存即可。二、找到网络与安全下的安全组,点击管理规则(如下图)配置完之后直接就能生效,无需再重启服务器。一、登录到阿里云服务器控制台。
2024-07-08 16:51:35 289
原创 ‘xxxx‘ is a program, not an importable package
程序出现报错:‘xxxx’ is a program, not an importable package:“xxxx”是一个程序,而不是一个可导入的包。当程序出现这种报错提示的时候,首先第一点要做的就是需要使用到的某个方法/函数/结构体等所在的.go文件上面的package是不是与导入路径中的包名一致。好蠢的问题,真的是被自己给蠢笑了…
2024-06-20 18:29:45 193
原创 go--defer
一个 goroutine 可能连续调用多个函数,defer 的添加过程跟上述流程一致,进入函数时添加 defer ,离开函数时取出 defer ,所以即便调用多个函数,也总是能保证 defer 是按 LIFO 方式执行的。定义 defer 的函数(下称主函数)可能有返回值,返回值可能有名字(具名返回值),也可能没有返回值(匿名返回值),延迟函数可能会影响返回值。对于指针类型参数,此规则依然适用,只不过延迟函数的参数是一个地址值,在这种情况下,defer 后面的语句对变量的修改可能会影响延迟函数。
2024-06-02 14:59:21 515
原创 微信小程序一键获取用户手机号码进行登录认证
需要传入的参数有:appid,secret和grant_type,appid和secret可以由小程序管理者查看,grant_type是固定值client_credential。接下来就是和上面一样的操作了,将参数包进map中,发送post请求获取返回值,对返回值进行解析就能得到我们想要的结果啦。这里我们可以创建一个map将需要传入的参数包进去,然后发送一个Post请求,通过解析就能获取到access_code。我们需要先获取一下access_token,至于code,就交给前端的同学来获取。
2024-05-19 11:48:57 1129
原创 性能分析与限流策略
限流又称为流量控制(流控),通常是指限制到达系统的并发请求数。我们生活中也会经常遇到限流的场景,比如:某景区限制每日进入景区的游客数量为8万人;沙河地铁站早高峰通过站外排队逐一放行的方式限制同一时间进入车站的旅客数量等。限流虽然会影响部分用户的使用体验,但是却能在一定程度上报障系统的稳定性,不至于崩溃(大家都没了用户体验)。而互联网上类似需要限流的业务场景也有很多,比如电商系统的秒杀、微博上突发热点新闻、双十一购物节、12306抢票等等。
2024-04-14 09:13:57 869
原创 事务隔离级别的无锁实现方式 -- MVCC
即多版本并发控制,是一种并发控制的方法,一般在数据库管理系统中实现对数据库的并发访问,在编程语言中实现事务内存。不加锁的select就是快照读,即不加锁的非阻塞读。(快照读的前提是非serializable隔离级别,在该隔离级别下,快照读会退化为当前读),之所以出现快照读,是基于高并发性能的考虑,快照读的实现是基于MVCC的,可以认为MVCC是行锁的变种,但是他在很多情况下避免了加锁操作,降低了开销。因为多版本的原因,导致快照读可能读取到的不一定是数据的最新版本,而有可能是历史版本。
2024-04-14 09:11:18 1071
原创 MySQL进阶之:索引
官方定义:索引是帮助MySQL高校获取数据的排好序的数据结构;索引的定义就是帮助存储引擎快速获取数据的一种数据结构,形象的说就是。
2024-03-29 15:12:58 624
原创 归并算法详细解析
归并排序与选择排序一样,性能不受输入数据的影响,但时间复杂度远小于选择排序。但由于归并排序需要另外一个与原数组长度相同的数组来做辅助排序,需要占用额外的空间,空间复杂度为O(n);
2024-03-20 10:16:40 1033 1
原创 超详细解析:在执行一条SQL语句期间发生了什么?
我们学习MySQL时,首先第一个接触到的就是SQL语句了,那么在我们运行一条SQL语句时,在MySQL中究竟发生了什么?MySQL是如何在那么多数据中准确的找出我们要操作的那一条语句并且执行我们需要做的操作的?为了解开这个疑问,我们就从MySQL的内部“零件”开始看起吧~看了这么多了,那我们来总结一下,在执行一条SQL语句期间发生了什么?连接器:建立连接,校验用户身份;
2024-03-16 09:44:59 1016
原创 使用swagger生成接口文档
Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开源软件工具一起使用,以设计、构建、记录和使用RESTful Web服务。Swagger包括自动文档,代码生成和测试用例生成。在前后端分离的项目开发过程中,如果后端同学能够提供一份清晰明了的接口文档,那么就能极大地提高大家的沟通效率和开发效率。可是编写接口文档历来都是令人头痛的,而且后续接口文档的维护也十分耗费精力。
2024-03-10 10:42:54 949
原创 Redis详解
Redis,英文全称是(远程字典服务),是一个开源的基于内存的数据存储系统,可以用作数据库缓存和消息队列等各种场景。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。
2024-02-29 16:30:26 853
原创 Gin框架实时重新加载工具:Air
找到安装的air目录,(我的目录是D:\My Folders\GOland\code\pkg\mod\github.com\cosmtrek\air@v1.49.0)创建一个名叫.air.conf的文件,将以下代码粘贴进去,可根据需求进行修改。cmd运行打开命令窗口,运行 go build .[这里有个点不要漏掉了]右键点击”此电脑“–>属性–>高级系统设置–>环境变量。点击新建,将上面的路径填写进去,然后点击确定。接下来在Go项目中配置air.conf文件。在项目根目录下打开cmd,执行air命令。
2024-02-20 17:22:38 443
原创 分布式ID生成--snowflake算法
53位存储的话,32位存储秒级时间戳,5位存储机器码,16位存储序列化,这样每台机器每秒可以生产65536个不重复的id。不仅仅是用于用户ID,实际上互联网中有很多场景需要能够生成类似MySQL自增ID这样不断增大,同时又不会重复的id,以支持业务中的高并发场景,例如在消息队列系统中,为每一个消息生成全局的唯一ID等。2.时间戳 占用41bit,单位为毫秒,总共可以容纳约69年的时间。3.工作机器id 占用10bit,其中高位5bit是数据中心ID,低位5bit是工作节点ID,最多可以容纳1024个节点。
2024-02-16 10:23:04 1039
原创 Go语言常见数据库操作
客户端对SQL语句进行占位符替换得到完整的SQL语句。客户端发送完整SQL语句到MySQL服务端MySQL服务端执行完整的SQL语句并将结果返回给客户端。把SQL语句分成两部分,命令部分与数据部分。先把命令部分发送给MySQL服务端,MySQL服务端进行SQL预处理。然后把数据部分发送给MySQL服务端,MySQL服务端对SQL语句进行占位符替换。MySQL服务端执行完整的SQL语句并将结果返回给客户端。
2024-02-14 23:44:26 1052
原创 Gin框架路由详解
gin框架使用的是定制版的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree(或者只是Radix Tree)。具有公共前缀的节点也共享一个公共父节点。
2024-02-06 00:35:25 952 1
原创 一篇文章搞懂:什么是Cookie和Session
Cookie 是一种在客户端存储数据的技术,它是由服务器发送给客户端的小型文本文件,存储在客户端的浏览器中,大小限制大致在 4KB 左右。在客户端发送请求时,浏览器会自动将相应的 Cookie 信息发送给服务器,服务器通过读取 Cookie 信息,就可以判断该请求来自哪个客户端。Cookie 可以用于存储用户的登录状态、购物车信息等。 Session是在服务器端维护的一种信息存储机制,用于存储特定用户会话期间的数据。通常,服务器会为每个用户创建一个唯一的Session标识符,用于跟踪用户的状态。
2024-01-29 11:17:00 1316
原创 网络体系结构
计算机网络体系结构分为三种:OSI体系结构(七层),TCP/IP体系结构(四层),五层体系结构。OSI体系结构: 概念清楚,理论也比较完整,但是它既复杂又不实用。–>20世纪90年代初期TCP/IP体系结构:TCP/IP是一个四层体系结构,得到了广泛的运用。–>1983年开始使用五层体系结构:为了方便学习,折中OSI体系结构和TCP/IP体系结构,综合二者的优点,这样既简洁,又能将概念讲清楚。和。
2023-12-10 10:52:40 1027 1
原创 go语言小游戏--星际大战
在游戏中总共设计了两种人物,分别是我方飞机和敌方外星人飞船。至此,游戏的基本功能都已介绍完毕,在此基础上还可以添加游戏状态等其他功能go语言小白,如果有更好的建议欢迎评论区留言~~参考:https://blog.csdn.net/darjun/article/details/128213350。
2023-11-08 22:30:29 589 1
原创 滑动窗口--查找长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。
2023-10-13 22:02:23 71
原创 Go语言基础知识点整理
fmt.Println("初始化元素:")//对切片中的map元素进行初始化mapSlice[0]["name"] = "小明"mapSlice[0]["gender"] = "男"mapSlice[0]["address"] = "中国""name":"张三",func main() {val := []string{"北京", "上海"}m["中国"] = valm["中国"] = append(m["中国"], "广州", "深圳")
2023-09-25 08:04:23 729 1
原创 抽象类和抽象方法
1.abstract:抽象的2.abstract可以用来修饰的结构:类,方法3.abstract不能用来修饰属性,构造器等结构4.abstract不能用来修饰私有方法,静态方法,final的方法,final的类随着继承层次中-一个个新子类的定义,类变得越来越具体,而父类则更般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。
2023-05-20 17:03:22 99
原创 IDEA创建JavaWeb项目
在弹出的页面中点击+,选择Tomcat Server下的Local(注意,选择Tomcat Server而不是TomcatEE Server)在最终的页面中先点击Applay(应用),再点击OK。Configure…–>±->添加Tomcat文件解压包位置,注意这里选择的包是bin包上一级的包。第一次配置Tomcat需要将Tomcat文件导入,如果之前配置过的话不需要导入,直接选择即可。在跳出的页面中勾选WebApplication(4.0),点击OK。在弹出的界面中点击fix,IEDA会自动配置文件。
2023-05-04 16:32:47 534
原创 实验三 基于MATLAB的离散时间信号的频域分析
1.掌握离散时间信号和系统的频域分析方法;2.学会利用MATLAB函数对离散时间信号和系统的频域进行计算。
2023-04-23 17:20:32 4093
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人