- 博客(34)
- 收藏
- 关注
原创 gin框架---文件上传
本文介绍了使用Gin框架处理文件上传和下载的方法。文件上传部分包括单文件上传、多文件上传以及服务端保存文件的三种方式(SaveUploadedFile、Create+Copy和直接读取文件内容)。文件下载部分介绍了直接响应文件、设置响应头使浏览器下载文件,以及前后端分离模式下的文件下载实现方式,并提供了前端对应的JavaScript下载代码示例。文中还提到了文件下载可能遇到的浏览器缓存问题及解决方案。
2026-05-03 19:40:00
50
原创 四大请求方式
本文介绍了RESTful风格的基本概念及其在Go语言中的实现。RESTful不是标准或协议,而是一种资源操作风格,主要包括:GET(获取资源)、POST(新建资源)、PUT(更新完整资源)、PATCH(更新部分资源)和DELETE(删除资源)。文章通过一个Go示例展示了如何使用Gin框架实现RESTful API,包括获取文章列表、获取文章详情、创建、更新和删除文章等操作。代码演示了如何处理JSON数据、路由参数以及不同HTTP方法对应的资源操作逻辑,体现了RESTful风格的核心思想。
2026-05-03 10:21:51
190
原创 全面解析 Token:从入门到 JWT 实战
本文全面解析了Token在现代Web开发中的应用,重点介绍了JWT的实现方式。文章首先对比了传统Session验证与Token验证的区别,指出Token的无状态、分布式友好等优势。详细讲解了JWT的三部分结构(Header、Payload、Signature)及其工作原理,并提供了Go语言中JWT的实战代码示例。
2026-05-02 15:47:41
490
原创 Redlock(红锁)--看这篇就够了
Redlock是Redis作者提出的分布式锁算法,通过部署多个独立Redis节点(通常5个)并使用多数派原则来提升锁的安全性。
2026-04-11 09:15:46
403
原创 Gin框架---框架CORS
跨域资源共享(CORS)与Gin框架实现 跨域问题源于浏览器的同源策略,当协议、域名或端口不同时就会产生跨域限制。实际开发中前后端分离架构常需要跨域通信。
2026-03-28 09:22:42
386
原创 HTTP和HTTPS理解
本文系统介绍了HTTP协议的核心原理及HTTPS的区别。HTTP是客户端与服务器间的通信协议,采用明文传输、无状态设计,包含请求行、请求头、空行和请求体四部分结构。HTTPS则是HTTP+SSL/TLS加密组合,通过443端口传输加密数据,需CA证书验证。关键区别在于HTTPS增加了加密层和证书验证,但性能开销略大。建立连接时,HTTP只需TCP三次握手,而HTTPS还需完成SSL/TLS握手协商会话密钥。HTTPS适用于支付等敏感场景,HTTP更适合普通数据传输。
2026-02-27 10:16:47
665
原创 摆动序列(贪心算法)
摆动点:当前元素与前一个元素的差值符号,和前一个差值的符号相反且非 0,则当前元素是一个摆动点;初始状态:数组第一个元素默认是 “起点”,计数为 1;遍历过程:只关注 “差值符号变化”,忽略连续相同符号的差值(包括差值为 0),因为这些元素对最长摆动序列无贡献。纯贪心算法解决摆动序列问题的核心是统计有效摆动点:只保留差值符号变化的元素,跳过同方向 / 相同元素;关键判断条件:当前差值非 0,且与前一个有效差值符号相反;时间复杂度 O (n)、空间复杂度 O (1),是最优解法之一;
2026-02-07 08:54:17
637
1
原创 复原 IP 地址(回溯算法)
复原 IP 地址是回溯算法的经典应用,核心是通过试探 - 验证 - 回退枚举所有有效分段组合。解题的关键是明确 IP 分段的有效性约束(范围 0-255、无前导 0)、回溯的终止条件和回退操作。的高效增删和合理的剪枝操作(提前跳出无效循环)是提升算法性能的重要手段。回溯算法的核心是状态恢复,任何一次试探后的状态变更,在递归返回后都必须回退,否则会影响后续路径的尝试。掌握本题的回溯思想后,还可以将其迁移到其他字符串分割类问题(如分割回文串),触类旁通,提升算法解题能力。
2025-12-28 17:15:46
1047
原创 Redis哨兵模式(Linux)
Redis哨兵模式是官方推荐的高可用解决方案,通过监控主从节点实现自动故障转移。文章详细介绍了主从复制配置方法,包括从节点设置和验证步骤。演示了哨兵节点配置和故障转移过程,当主节点宕机时能自动选举新主节点。
2025-12-06 17:55:50
779
原创 MySQL复盘总结
本文系统梳理了MySQL核心知识点,包括基本概念、语法规范和查询语言。主要内容涵盖:1.数据库基础概念(DB/DBMS/SQL)和操作类型(DDL/DML/DCL等);2.数据存储特点与语法规范;3.DQL查询语言详解,包含基础查询、条件查询(模糊查询/逻辑运算)、排序查询、分组查询(GROUP BY/HAVING)、连接查询(内/外连接)以及子查询(标量/列/行子查询)。文章通过具体案例演示各类查询语法,适合用于MySQL知识查漏补缺和系统复习。
2025-11-15 14:18:01
627
原创 MySQL学习笔记
MySQL数据定义语言摘要 本文介绍了MySQL数据定义语言(DDL)的核心操作,主要包括库和表的创建、修改与删除,以及数据类型和约束的管理。
2025-11-08 13:52:07
1016
原创 MySQL学习笔记--高级查询语句
本文介绍了Mysql的高级查询语句,包括连接查询,子查询,以及分页查询,其中包含了连接查询的不同情况,以及子查询的分类均有介绍
2025-11-01 13:29:30
606
原创 MySQL学习笔记(查询和函数部分)
本文介绍了MySQL查询语句的基础知识,包括基础查询、条件查询、排序查询和分组查询,以及常见函数的使用方法。
2025-10-26 14:51:11
1092
原创 简易网络聊天室(Go语言版)
基于Golang实现的TCP网络聊天室,支持多客户端连接、公聊、私聊和用户列表查询。主要功能包括:用户名唯一性验证、公聊广播、定向私聊(格式:>用户名:消息)、在线用户查询(list命令)。服务器采用goroutine处理并发连接,全局ClientMap管理用户状态。项目结构清晰,分为server(监听连接)、client(用户交互)、message(消息处理)和common(公共定义)模块。
2025-10-18 15:33:04
564
原创 Linux和Docker知识复盘
本文总结了Linux和Docker的常用操作命令,重点介绍了文件目录管理、内容查看、进程管理、权限控制、压缩解压等核心功能。文件操作包括ls/cd/mkdir/cp/mv/rm等基本命令;内容查看涵盖cat/less/grep等工具;进程管理涉及ps/top/kill等命令;权限管理包含chmod/chown/sudo等;压缩解压介绍了tar/zip的用法。文章还简要说明了vim编辑器的多模式操作和光标移动技巧。这些命令总结既包含日常高频操作,也涵盖容易遗忘的进阶用法,是Linux系统管理者的实用速查手册。
2025-10-10 17:47:11
888
原创 docker常用的镜像容器命令操作
此篇中,只统计了一docker一部分的知识点,主要是关于docker的镜像以及容器的基本操作命令。docker run。
2025-09-21 15:42:45
572
原创 安装Docker以及遇到的问题
对于学习Docker,首先安装Docker是必要的,在这里分享一下我的一些安装历程吧,这其中包含了我在安装过程中出现的一些问题,以及解决方法。
2025-09-13 11:09:24
227
原创 Linux基础知识学习
这段时间对于Linux的学习,主要是处于对于一些Linux的命令操作的学习。 目前,我学习的Linux的知识,对于Linux的定义为全是命令行操作的系统,要学习很多的命令操作,通过命令来对文件夹,文件,用户组,用户等等进行相应的操作。
2025-09-06 11:08:00
860
原创 对于工厂模式的理解
总之,Go 语言的工厂模式本质上是对 “结构体初始化” 的一种封装和抽象,弥补了没有构造函数的特性限制,在实际开发中,工厂模式能有效提升代码的可维护性、扩展性和安全性,是 Go 面向对象编程中不可或缺的模式。如果想要创建一个对外不开放包中的对象,不能够直接创建,可以通过所谓的“工厂模式”通过函数来实现构造的过程。Go 中多态通过 “接口” 实现,工厂模式可以根据不同参数返回不同的接口实现,而外部无需关心具体类型。对于上述代码中的NewPerson就是工厂函数,这样在另一个包中就可以通过该函数实现创建。
2025-07-23 17:49:43
262
原创 go语言基础阶段学习复盘
go语言又称Golang其是由Google公司开发的一种开源编程语言,其作为一种静态类型的编译型语言其吸收了C语言的执行效率,和语法的简洁性,同时摒弃了其中例如指针运算和宏定义类似的复杂的特性。总结下来go语言的特点可以分为:简洁易学、为静态类型和编译型、原生支持并发、内存安全、丰富的标准库、跨平台于交叉编译、接口与组合、工具链完善go语言在构建高性能和高并发的开发时,还兼顾开发效率和代码可维护性。
2025-07-22 16:32:05
1143
原创 go语言基础部分的知识梳理
main包是程序入口包,一般main函数会放在这个包下,要求是main函数一定要放在main包下包的声明和所在的文件夹的名字可以不一致一个目录下的同一级的文件必须归属同一个包,即声明的时候为同一个包方式1:定义一个切片,然后让切片去引用一个已经创建好的数组。
2025-07-14 18:32:48
948
原创 C语言实现简单三子棋(井字连线)
为了能让有地方下棋,并且我更加的整齐和美观.要对棋盘进行一些初始化的设置,放便后续的布局.在这里运用了输出语句对棋盘进行输出,既然这个棋盘是井字型的,便可以定义一个三行三列的二维数组例如board[ROW][[COL](这里我运用ROW代表行,COL代表列,当然这两个都是常量,我运用define进行提前设定的常量).因为我设定的是人机对战,所以设置了玩家下棋和电脑下棋,进行对弈.这里运用定义了一个函数,先将数组都填上空格.结束游戏之后,可以进行继续游戏或者结束游戏.若棋盘满了谁都没有胜利,则判定为平局.
2023-12-04 19:51:56
1404
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅