自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cron定时任务

基础周期规则@yearly或@annually每年1月1日 00:00 执行(等效于0 0 1 1 *@monthly每月1日 00:00 执行(等效于0 0 1 * *@weekly每周日 00:00 执行(等效于0 0 * * 0@daily或@midnight每天 00:00 执行(等效于0 0 * * *@hourly每小时整点执行(等效于0 * * * *自定义间隔规则支持任意时间间隔(需符合格式)示例:@every 1h30m10s // 每1小时30分钟10秒。

2025-04-26 19:21:11 658

原创 Cookie和Session

Cookie•定义:由服务器生成并发送到客户端(浏览器)的一小段文本数据,存储在用户本地。每次请求时,浏览器自动将 Cookie 携带到服务器。•核心作用:跟踪用户身份(如登录状态)、记录个性化设置(如语言偏好)等。Session•定义:服务器端创建的会话机制,用于存储用户会话期间的临时数据(如用户 ID、购物车信息)。客户端通过唯一的Session ID(通常存储于 Cookie)与服务器端的 Session 关联。•核心作用:维护敏感或临时的用户状态(如登录凭证、多页面操作数据)。

2025-04-20 08:57:14 649

原创 从 SYN Flood 到 XSS:常见网络攻击类型、区别及防御要点

•。

2025-04-13 12:34:03 818

原创 GORM 中 CURD 操作用法详解

方法适用场景零值处理钩子触发批量支持条件必需性Save全字段覆盖或插入包含零值是否主键判断Update单字段更新包含零值是否是Updates多字段动态更新可选是是是跳过钩子的单/多字段更新包含零值否是是操作类型特点适用场景主键删除精确删除单条记录已知主键的删除需求条件批量删除通过 WHERE 筛选多记录按业务规则批量清理数据软删除标记删除而非物理删除数据恢复需求或审计要求钩子拦截自定义删除前校验逻辑权限控制或数据保护。

2025-04-04 18:00:14 978

原创 golang标准库container/list相关内容

/ 元素的值// 前一个和后一个元素指针// 元素所属的链表list *ListValue:类型为,可以存储任意类型的数据。next和prev:分别为指向前一个和后一个Element节点的指针。list:指向该元素所属的list.List链表。Listroot Element // 链表的哨兵节点,也是链表的头节点len int // 链表的长度root:这是一个Element类型的哨兵节点,它不存储实际的数据,仅作为链表的头节点,以此简化链表操作。len:代表链表中元素的数量。

2025-03-30 12:20:56 847

原创 gin中间件学习笔记

Gin 中间件是一种用于处理 HTTP 请求的钩子函数,可以在请求到达业务逻辑处理函数(如路由处理函数)之前或之后执行特定操作。c.Next(): 调用该函数会将控制权交给下一个中间件函数,如果没有下一个中间件函数,则将控制权交给处理请求的路由处理函数。c.Abort(): 调用该函数会立即终止当前中间件函数的执行,并且不会再调用后续的中间件函数或路由处理函数。Gin 中间件的执行流程类似 “洋葱” 分层结构:请求按中间件注册顺序进入,执行。后跳转到下一中间件或业务逻辑,返回时再以相反顺序执行剩余代码。

2025-03-22 11:07:16 522

原创 DNS查询

DNS 查询分为和两种方式,它们在查询过程中有不同的行为和角色分工。在递归查询中,DNS 客户端(如浏览器或操作系统)将查询请求发送给本地 DNS 服务器,并期望本地 DNS 服务器解析域名,最终返回一个明确的答案(IP 地址或错误信息)。

2025-03-16 12:22:23 678

原创 Mysql中的索引

一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。​ 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大。但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sql了,给数据库建立正确合理的索引,是mysql优化的一个重要手段。​ 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,

2025-03-09 10:30:35 853

原创 gin框架学习笔记

这也就是给路由分组的意义。静态文件的路径不能在被路由使用。解决body阅后即焚问题。尽量使用名词复数来定义。

2025-03-02 14:53:21 397

原创 redis事务

在 Redis 中,事务是通过MULTIEXECDISCARD和WATCH等命令实现的。事务的目的是确保一组操作按照顺序执行,避免中途被其他命令打断。Redis 的事务并不像传统的数据库那样支持真正的隔离性,但它提供了一些基本的原子性保证。:原子性,一致性,隔离性,持久性:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行。一次性,顺序性,排他性的执行一组命令。redis没有事务隔离级别的概念。

2025-02-23 10:52:05 598

原创 go访问mysql数据库

是一个空白标识符,用来执行该包的初始化操作(即注册 MySQL 驱动),但不直接使用其中的内容。

2025-02-15 15:37:03 221

原创 redis基础命令

命令,它允许在字符串类型的值中按位操作,像对待位图(bitmaps)一样,对数据进行高效的操作。返回列表key中,位于start和stop之间的元素(包括start和stop)。将⼀个或多个元素添加到列表key的表头(左侧),多个值则从左⾄右依次插⼊表头;将⼀个或多个元素添加到列表key的表头(右侧),多个值则从右⾄左依次插⼊表头;将⼀个或多个元素加⼊到集合key中。返回从start到end为⽌的所有设置位(bit为1的位)的数量。返回有序集合key中的成员member的分数值(score)。

2025-02-09 22:05:50 1030

原创 Linux中nohup命令

如果你不想把输出写入默认的nohup.out文件,可以通过重定向的方式将输出保存到你指定的文件中。例如,如果你希望将输出保存到:将标准输出重定向到文件。2>&1:将标准错误(stderr)也重定向到标准输出(stdout),从而确保错误信息也会写入文件。

2025-01-25 20:09:03 346

原创 redis中scan命令

在 Redis 中,SCAN命令用于遍历 Redis 数据库中的键,提供了一种渐进式的方式来扫描键,而不会阻塞服务器或导致性能问题。它是用于替代KEYS命令的一个命令,因为KEYS会在扫描过程中阻塞 Redis 实例,而SCAN命令采用渐进式(cursor-based)扫描,避免了这种问题。

2025-01-19 19:36:18 615

转载 go-redis常用命令

安装go-redis连接redis。

2024-12-15 11:06:31 89

原创 数据库约束

数据库约束是保障数据完整性和一致性的重要机制。通过合理使用约束,可以确保数据符合业务规则,防止不合法数据进入数据库系统。常见的约束包括主键、外键、唯一约束、非空约束、检查约束、默认约束等。数据库约束在保证数据质量、简化操作复杂度和减少错误上发挥了重要作用。灵活运用约束可以大大提升系统的可靠性和可维护性。

2024-12-07 10:57:26 919

原创 Linux系统echo命令

echo是 Linux 中一个常用的命令,用于输出字符串、变量的值或命令执行结果到标准输出(通常是屏幕)。它在脚本编写和命令行操作中非常实用,具有丰富的功能和多种用法。

2024-12-01 10:04:55 2888

原创 数据库--DDL语句

数据定义语言(Data Definition Language)

2024-11-24 10:23:34 635

原创 vim常用命令

如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。若想要编辑文本,只需要启动 Vim,进入了命令模式,按下。命令模式只有一些最基本的命令,因此仍要依靠。

2024-11-16 15:30:18 1601

原创 go语言数组,切片

identifier: 表示变量名type: 表示切片中的元素类型切片不需要说明长度。// 声明切片类型var a []string //声明一个字符串切片var b = []int{} //声明一个整型切片并初始化var c = []bool{false, true} //声明一个布尔切片并初始化var d = []bool{false, true} //声明一个布尔切片并初始化// fmt.Println(c == d) //切片是引用类型,不支持直接比较,只能和nil比较或使用。

2024-11-10 13:51:22 867

原创 golang学习笔记 函数

Go语言中定义函数使用func关键字func 函数名(参数)(返回值){函数体函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名。参数:参数由参数变量和参数变量的类型组成,多个参数之间使用分隔。返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用分隔。函数体:实现指定功能的代码块。函数的参数和返回值都是可选的。

2024-11-02 20:00:23 1567

原创 golang学习笔记 channle

通道的定义:通道是一种带有类型的管道,可以在其中发送和接收特定类型的数据。无缓冲通道(Unbuffered Channel):发送和接收必须同步进行。发送者和接收者必须同时存在,才会完成数据的传输操作。有缓冲通道(Buffered Channel):允许异步发送和接收操作,发送者可以在缓冲区未满时将数据存入通道,接收者可以在缓冲区不为空时获取数据。(1)通道本质就是一个数据结构-队列(2)数据是先进先出(3)自身线程安全,多协程访问时,不需要加锁,channel本身就是线程安全的。

2024-10-28 17:07:56 684 1

原创 golang学习笔记 接口

type 接口类型名 interface{方法名1( 参数列表1 ) 返回值列表1方法名2( 参数列表2 ) 返回值列表2方法名:当方法名首字母是大写且这个接口类型名首字母也是大写时,这个方法可以被接口所在的包(package)之外的代码访问。参数列表、返回值列表:参数列表和返回值列表中的参数变量名可以省略。Write()当你看到一个Writer接口类型的值时,你不知道它是什么,唯一知道的就是可以通过调用它的Write方法来做一些事情。空接口是指没有定义任何方法的接口类型。

2024-10-18 16:28:44 877

原创 goland学习笔记 结构体

使用type和struct关键字来定义结构体type 类型名 struct {字段名 字段类型字段名 字段类型...其中:类型名:标识自定义结构体的名称,在同一个包内不能重复。字段名:表示结构体字段名。结构体中的字段名必须唯一。字段类型:表示结构体字段的具体类型。定义一个教师结构体,同样类型的字段也可以写在一行Age int语言内置的基础数据类型是用来描述一个值的,而结构体是用来描述一组值的。比如一个教师有名字、年龄和居住城市等,本质上是一种聚合型的数据类型。

2024-10-12 14:46:20 846

空空如也

空空如也

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

TA关注的人

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