自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 go-文件缓存与锁

但出现一个问题:文件更新后,该变量的值依然是文件更新之前的内容,需要重新运行go包,而cookie随时可能失效而去更新,频繁重启这显然不现实。频繁读取文件,性能不佳,故在go包中创建了一个map全局变量存储文件内容,只有键不存在时才去读取文件。若不一致,则加写锁,再次检查修改时间,防止获取到写锁之前,文件已经修改。每次读取加读锁,并检查实际文件的修改时间,若与map中的值一致,则直接返回map中文件内容。依旧采用map存储文件内容,但map的值为:1、文件的内容,2、文件的修改时间。

2025-03-10 17:15:03 275

原创 nginx-访问异常

有A、B两台服务器,使用相同的主域名,SSL证书相同,子域名不同。当访问B时,获取到的A的内容。虽然解决,但还是没有完全搞清楚为什么会访问到A。了解的小伙伴请赐教。(其他小伙伴可以查看一下DNS解析是否正常,我这边没有办法查看)

2024-11-26 16:44:21 355

原创 Gorm--Scan

在 Gorm 中,Scan 是一个用于将查询结果映射到自定义结构体或变量的函数。与 Find 或 First 不同,Scan 允许你将查询结果存储到与数据库模型不完全匹配的结构体中。下划线与驼峰命名法的转换:Gorm 会尝试将查询结果中的下划线格式(如 max_age)与结构体的驼峰命名格式(如 MaxAge)进行对应。这种转换是自动完成的。即使查询结果的字段名是 max_age,它仍然会匹配到结构体中的 MaxAge 字段。问题:查询结果返回的字段是max_age,为什么能匹配到结构体的MaxAge?

2024-09-02 16:55:03 508

原创 git使用——合并代码

当开发新功能并测试完毕后,要将代码推送到主分支.......

2024-08-31 16:49:25 2220

原创 MYSQL json

MYSQL 中json字段的查询处理方法

2024-08-05 18:17:04 493

原创 PHP面试题(三)

面试题

2024-06-20 10:54:50 309

原创 PHP面试题(二)

/ 此处使用的是 static::,表示调用该方法的实际类// 调用 ChildClass 的 test 方法// 返回 ChildClass静态延迟绑定,即在类内部用来代表类本身的关键字部分不是在类编译时固定好,而是当方法被访问时动态的选择来访者所属的类。可以理解为,定义父类时,提前设置子类访问该静态方法。可以使用cURL库,并设置Range头部。));

2024-06-18 16:38:34 706

原创 PHP面试题(一)

php.ini。

2024-06-18 14:28:13 942

原创 面向对象(OOP)

抽象类是不能被实例化的类,它包含一个或多个抽象方法。这些方法在抽象类中没有具体实现,需要在其子类中实现。抽象类的主要目的是为子类提供一个通用的接口。定义抽象类时,需要注意以下几个方面:(1). 明确抽象类的目的通用模板:抽象类应该作为一组相关类的通用模板,定义它们的共同行为和特征。不能实例化:抽象类是不能被实例化的,只能被继承。(2). 抽象方法与具体方法抽象方法:必须至少包含一个抽象方法(没有方法体的声明),子类必须实现这些抽象方法。

2024-06-06 18:30:13 1239

原创 MySQL InnoDB存储引擎-逻辑存储结构与架构

Buffer Pool:缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,不会直接操作磁盘写入,而是先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。General Tablespaces:通用表空间,需要通过 CREATE TABLESPACE 语法创建通用表空间,在创建表时,可以指定该表空间。log),默认大小为16MB,日志缓冲区的日志会定期刷新到磁盘中。存储用户创建的临时表等数据。

2024-06-05 12:00:04 663

原创 MySQL触发器

触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,执行触发器中定义的SQL语句集合。使用别名OLD和NEW来引用触发器中发生变化的记录内容。现在触发器还只支持行级触发,不吃吃语句级出发。

2024-06-05 10:37:19 231

原创 MySQL存储过程

存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想,就是对数据库SQL语言层面的代码进行封装与重用。

2024-06-04 11:33:32 162

原创 MySQL存储引擎

InnoDB是兼顾高可靠性和高性能的通用存储引擎特点:1.支持事务,DML操作遵循ACID模型2.支持行级锁,提高并发访问性能3.支持外键约束,保证数据的完整性和正确性文件xxx.ibd:xxx代表的是表名,InnoDB引擎瞎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引要查看文件,可在操作系统命令行输入: ibd2sdi xxx.ibd。

2024-06-04 11:03:14 332

原创 MySQL事务并发问题及隔离级别

脏读:一个事务读到另外一个事务还没有提交的数据不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了“幻影”

2024-06-04 10:18:05 195

原创 安装hyperf

可以到git下载想要的版本,我的php7.4安装了4.8版本。

2024-05-25 01:24:46 338

原创 hyperf学习笔记

全称input/output操作,即输入与输出操作,指的是计算机与外部设备之间进行的数据交换过程。这些操作可以是硬件层面的,如硬盘读写、网络通信;软件层面的,如文件读写、数据库操作。因此,相对于Cpu的计算操作要慢得多,往往是性能瓶颈之一。

2024-05-20 15:57:32 308 1

原创 MySQL 锁

在做全库备份时,为了保证数据一致性,会给数据库加上全局锁在InnoDB引擎中,可以在备份时加上参数 --single-transaction, 参数来完成不加锁的一致性数据备份(底层是快照读的方式实现的)。

2024-05-13 20:19:14 793

原创 Sql优化

因为,当在进行分页查询时,如果执行 limit 2000000,10 ,此时需要排序前 2000010 记录,仅仅返回 2000000 - 2000010 的记录,其他记录丢弃,查询排序的代价非常大。优化思路:自己计数(可以借助于redis,但如果是带条件的count又比较麻烦了,新增数据时count值加1,删除数据时count加1)。在执行update的sql语句时,需注意使用的where条件,对其建立相应的索引,此时只会对当前行进行锁定。根据排序字段建立合适的索引,多字段排序时,也遵循最左前缀法则。

2024-05-10 10:02:34 792 1

原创 索引使用规则

MySQL将根据数据分布情况,评估使用索引相比全表扫描的速度,如何更慢,则不使用索引。当字段类型为字符串(varchar,text,longtext等)时,可以只将字符串的一部分前缀,建立索引,这样可以大大节约索引空间,从而提高索引效率。如果索引了多列(联合索引),查询的条件要从最左列开始,并且不跳过中间的列,如果跳过,索引将部分失效。在业务场景中,如果存在多个查询条件,考虑针对于查询字段建立索引时,建议建立联合索引,而非单列索引。联合索引中,出现范围查询(>,

2024-05-09 11:26:20 422 1

原创 索引数据结构

红黑树(Red-Black Tree)是一种自平衡的二叉树,它在每个节点上增加了一个颜色的属性,可以是红色或黑色,通过颜色和一些调整规则来确保树的平衡性,从而在动态插入和删除操作中保持相对平衡的状态。B树(B-tree)是一种自平衡的树,相比于二叉树可以拥有更多的子节点。二叉树(Binary Tree)是每个节点最多有两个子节点的树结构,通常子节点被称为“左子节点”和“右子节点”。哈希索引就是采用一定的hash算法,将键值换算成新的hash值,映射到对应的槽位上,然后存储到hash表中。

2024-05-07 10:00:38 625

原创 SQL性能分析

设置阙值,超过即记录。

2024-04-24 15:26:20 348

原创 Linux硬件监控

Linux监控CPU、内存、硬盘占用率

2024-04-18 12:24:52 200

原创 Linux命令

ls -l可查看文件权限,示例1.txt文件权限为:-rwxr-x---。从左往右分三段解读:1,rwx,该权限表示nathan用户可读可写可执行此文件;2,r-x,表示nathan用户组可读可执行此文件;3、---表示其他人不可读写执行此文件。不仅可以复制文件,还可以保持文件的权限、时间戳等属性,并且只复制文件之间的差异部分,提高传输效率。此时经可以在不输入密码的情况下登录到你的服务器了,若依然要求输入密码,请检查ssh配置文件。一周中的星期几(0 - 7,其中 0 和 7 都代表星期天)

2024-04-16 15:54:39 391 1

空空如也

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

TA关注的人

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