- 博客(32)
- 收藏
- 关注
原创 性能分析与限流策略
限流又称为流量控制(流控),通常是指限制到达系统的并发请求数。我们生活中也会经常遇到限流的场景,比如:某景区限制每日进入景区的游客数量为8万人;沙河地铁站早高峰通过站外排队逐一放行的方式限制同一时间进入车站的旅客数量等。限流虽然会影响部分用户的使用体验,但是却能在一定程度上报障系统的稳定性,不至于崩溃(大家都没了用户体验)。而互联网上类似需要限流的业务场景也有很多,比如电商系统的秒杀、微博上突发热点新闻、双十一购物节、12306抢票等等。
2024-04-14 09:13:57 819
原创 事务隔离级别的无锁实现方式 -- MVCC
即多版本并发控制,是一种并发控制的方法,一般在数据库管理系统中实现对数据库的并发访问,在编程语言中实现事务内存。不加锁的select就是快照读,即不加锁的非阻塞读。(快照读的前提是非serializable隔离级别,在该隔离级别下,快照读会退化为当前读),之所以出现快照读,是基于高并发性能的考虑,快照读的实现是基于MVCC的,可以认为MVCC是行锁的变种,但是他在很多情况下避免了加锁操作,降低了开销。因为多版本的原因,导致快照读可能读取到的不一定是数据的最新版本,而有可能是历史版本。
2024-04-14 09:11:18 1048
原创 MySQL进阶之:索引
官方定义:索引是帮助MySQL高校获取数据的排好序的数据结构;索引的定义就是帮助存储引擎快速获取数据的一种数据结构,形象的说就是。
2024-03-29 15:12:58 598
原创 归并算法详细解析
归并排序与选择排序一样,性能不受输入数据的影响,但时间复杂度远小于选择排序。但由于归并排序需要另外一个与原数组长度相同的数组来做辅助排序,需要占用额外的空间,空间复杂度为O(n);
2024-03-20 10:16:40 852 1
原创 超详细解析:在执行一条SQL语句期间发生了什么?
我们学习MySQL时,首先第一个接触到的就是SQL语句了,那么在我们运行一条SQL语句时,在MySQL中究竟发生了什么?MySQL是如何在那么多数据中准确的找出我们要操作的那一条语句并且执行我们需要做的操作的?为了解开这个疑问,我们就从MySQL的内部“零件”开始看起吧~看了这么多了,那我们来总结一下,在执行一条SQL语句期间发生了什么?连接器:建立连接,校验用户身份;
2024-03-16 09:44:59 926
原创 使用swagger生成接口文档
Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开源软件工具一起使用,以设计、构建、记录和使用RESTful Web服务。Swagger包括自动文档,代码生成和测试用例生成。在前后端分离的项目开发过程中,如果后端同学能够提供一份清晰明了的接口文档,那么就能极大地提高大家的沟通效率和开发效率。可是编写接口文档历来都是令人头痛的,而且后续接口文档的维护也十分耗费精力。
2024-03-10 10:42:54 850
原创 Redis详解
Redis,英文全称是(远程字典服务),是一个开源的基于内存的数据存储系统,可以用作数据库缓存和消息队列等各种场景。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。
2024-02-29 16:30:26 805
原创 Gin框架实时重新加载工具:Air
找到安装的air目录,(我的目录是D:\My Folders\GOland\code\pkg\mod\github.com\cosmtrek\[email protected])创建一个名叫.air.conf的文件,将以下代码粘贴进去,可根据需求进行修改。cmd运行打开命令窗口,运行 go build .[这里有个点不要漏掉了]右键点击”此电脑“–>属性–>高级系统设置–>环境变量。点击新建,将上面的路径填写进去,然后点击确定。接下来在Go项目中配置air.conf文件。在项目根目录下打开cmd,执行air命令。
2024-02-20 17:22:38 378
原创 分布式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 1006
原创 Go语言常见数据库操作
客户端对SQL语句进行占位符替换得到完整的SQL语句。客户端发送完整SQL语句到MySQL服务端MySQL服务端执行完整的SQL语句并将结果返回给客户端。把SQL语句分成两部分,命令部分与数据部分。先把命令部分发送给MySQL服务端,MySQL服务端进行SQL预处理。然后把数据部分发送给MySQL服务端,MySQL服务端对SQL语句进行占位符替换。MySQL服务端执行完整的SQL语句并将结果返回给客户端。
2024-02-14 23:44:26 945
原创 Gin框架路由详解
gin框架使用的是定制版的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree(或者只是Radix Tree)。具有公共前缀的节点也共享一个公共父节点。
2024-02-06 00:35:25 687 1
原创 一篇文章搞懂:什么是Cookie和Session
Cookie 是一种在客户端存储数据的技术,它是由服务器发送给客户端的小型文本文件,存储在客户端的浏览器中,大小限制大致在 4KB 左右。在客户端发送请求时,浏览器会自动将相应的 Cookie 信息发送给服务器,服务器通过读取 Cookie 信息,就可以判断该请求来自哪个客户端。Cookie 可以用于存储用户的登录状态、购物车信息等。 Session是在服务器端维护的一种信息存储机制,用于存储特定用户会话期间的数据。通常,服务器会为每个用户创建一个唯一的Session标识符,用于跟踪用户的状态。
2024-01-29 11:17:00 749
原创 网络体系结构
计算机网络体系结构分为三种:OSI体系结构(七层),TCP/IP体系结构(四层),五层体系结构。OSI体系结构: 概念清楚,理论也比较完整,但是它既复杂又不实用。–>20世纪90年代初期TCP/IP体系结构:TCP/IP是一个四层体系结构,得到了广泛的运用。–>1983年开始使用五层体系结构:为了方便学习,折中OSI体系结构和TCP/IP体系结构,综合二者的优点,这样既简洁,又能将概念讲清楚。和。
2023-12-10 10:52:40 962 1
原创 go语言小游戏--星际大战
在游戏中总共设计了两种人物,分别是我方飞机和敌方外星人飞船。至此,游戏的基本功能都已介绍完毕,在此基础上还可以添加游戏状态等其他功能go语言小白,如果有更好的建议欢迎评论区留言~~参考:https://blog.csdn.net/darjun/article/details/128213350。
2023-11-08 22:30:29 313 1
原创 滑动窗口--查找长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。
2023-10-13 22:02:23 49
原创 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 91 1
原创 抽象类和抽象方法
1.abstract:抽象的2.abstract可以用来修饰的结构:类,方法3.abstract不能用来修饰属性,构造器等结构4.abstract不能用来修饰私有方法,静态方法,final的方法,final的类随着继承层次中-一个个新子类的定义,类变得越来越具体,而父类则更般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。
2023-05-20 17:03:22 48
原创 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 443
原创 实验三 基于MATLAB的离散时间信号的频域分析
1.掌握离散时间信号和系统的频域分析方法;2.学会利用MATLAB函数对离散时间信号和系统的频域进行计算。
2023-04-23 17:20:32 3384
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人