Go addlicense添加版权声明快速使用1.项目添加LICENSE文件12345678go install github.com/nishanths/license/v5@latestlicense -list # 查看支持的代码协议license -n 'lxy911(李星云) <lxyaa911@gmail.com>' -o LICENSE mit# 在项目根目录下执行ls LICENSE LICENSE
2.给源文件添加版本声明版权头信息保存的文件名,通常命名为:boilerplate。
新建boilerplate.txt文件
1234Copyright 2025 lxy911(李星云) <lxyaa911@gmail.com>. All rights reserved.Use of this source code is governed by a [MIT/Apache/BSD] style licensethat can be found in the LICENSE file.Project repository: ht ...
Go Air 详细讲解Air 是一个用于 Go 应用程序的实时重载工具,可以在代码更改时自动重建和重启应用程序,极大提高开发效率。
1. 安装方式一:使用 Go 安装1go install github.com/cosmtrek/air@latest
方式二:直接下载二进制文件12345678# Linuxcurl -fLo air https://git.io/linux_air# macOScurl -fLo air https://git.io/darwin_air# Windowscurl -fLo air.exe https://git.io/windows_air
方式三:使用包管理器12345678# macOS with Homebrewbrew install air# Windows with Scoopscoop install air# Arch Linux with yayyay -S air
2. 基本使用快速开始12345678# 在项目根目录执行air# 指定配置文件air -c .air.toml# 初始化配置文件air init
项目结构示例 ...
linux 指令大全1Linux 目录结构
linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
在 Linux 世界里,一切皆文件
1. 根目录 /
所有目录和文件的起点,所有其他目录都挂载在根目录下。
2. 核心目录
目录
用途
典型内容示例
/bin
基础命令(所有用户可用)
ls, cp, cat, bash 等二进制可执行文件
/boot
系统启动文件
内核文件(vmlinuz-*)、引导加载器(如 GRUB)、initramfs 镜像等
/dev
设备文件(硬件或虚拟设备的接口)
/dev/sda(硬盘)、/dev/tty(终端)、/dev/null(空设备)等
/etc
系统级配置文件
/etc/passwd(用户账户)、/etc/fstab(挂载表)、/etc/network/(网络配置)
/home
用户家目录(普通用户的个人空间)
/home/username/ 包含用户的文档、下载、配置文件(如 .bash ...
中间件
未读Makefile简介简单来说,Makefile是一个工程文件的编译规则,描述了整个工程的编译和链接等规则,这些规则里包含了这些内容:
工程中的哪些源文件需要编译,以及如何编译;
需要创建哪些库文件,以及如何创建;
如何最终生成我们想要的可执行文件。
通过编写Makefile规则,我们可以使上述功能自动化,极大提高工程的编译效率。同时,借助Makefile的其他功能,我们也能完成项目管理的自动化。
在实际使用过程中,一般是先编写一个Makefile文件,告诉整个项目的编译规则,然后通过Linux make命令来解析该Makefile文件,实现项目编译、管理的自动化。
默认情况下,make命令会在当前目录下按如下顺序查找Makefile文件:“GNUmakefile”、“makefile”、“Makefile”的文件,一旦找到,就开始读取这个文件并执行。
这里,我建议使用“Makefile”文件名,因为这个文件名第一个字符大写,这样有一种显目的感觉。还有一些make只对全小写的“makefile”文件名敏感。大多数的make都支持“makefile”和“Makefile”这两种默认文件 ...
Go 代码开发规范
此篇文章来自大佬孔令飞,鄙人图观看方便直接将其copy了下来,如有冒犯请联系
在Go 项目开发中,一个好的编码规范可以极大的提高代码质量。为了帮你节省时间和精力,这里我整理了一份清晰、可直接套用的 Go 编码规范,供你参考。
这份规范,是我参考了 Go 官方提供的编码规范,以及 Go 社区沉淀的一些比较合理的规范之后,加入自己的理解总结出的,它比很多公司内部的规范更全面,你掌握了,以后在面试大厂的时候,或者在大厂里写代码的时候,都会让人高看你一眼,觉得你code很专业。
这份编码规范中包含代码风格、命名规范、注释规范、类型、控制结构、函数、GOPATH 设置规范、依赖管理和最佳实践九类规范。如果你觉得这些规范内容太多了,看完一遍也记不住,这完全没关系。你可以多看几遍,也可以在用到时把它翻出来,在实际应用中掌握。这篇特别放送的内容,更多是作为写代码时候的一个参考手册。
1. 代码风格1.1 代码格式
代码都必须用 gofmt 进行格式化。
运算符和操作数之间要留空格。
建议一行代码不超过120个字符,超过部分,请采用合适的换行方式换行。但也有些例外场景,例如impo ...
mysql
未读ubuntu环境下mysql8重置密码问题:当 MySQL 以 --skip-grant-tables启动时,系统禁用权限验证,因此无法执行 ALTER USER这类需要权限检查的命令。
✅ 正确的密码重置步骤步骤 1:确保 MySQL 运行在跳过权限模式12345# 停止 MySQL 服务sudo systemctl stop mysql# 以跳过权限模式启动sudo mysqld_safe --skip-grant-tables --skip-networking &
步骤 2:无密码登录 MySQL1mysql -u root
步骤 3:使用 UPDATE 语句重置密码(关键步骤)在 mysql>提示符下执行:
1234567891011-- 选择系统数据库USE mysql;-- 清空 root 用户的认证字符串(相当于取消密码)UPDATE user SET authentication_string = '' WHERE user = 'root';-- 刷新权限FLUSH PRIVILEGES;-- 退出EXIT; ...
Redis 哨兵详解Redis Sentinel(哨兵)是 Redis 官方提供的高可用性(High Availability, HA)解决方案,用于监控 Redis 主从复制架构,实现自动故障转移(failover)、配置管理和通知。它从 Redis 2.8 开始引入,并在后续版本中不断优化(如 Redis 5.0 提升了选举算法,Redis 7.0+ 优化了网络处理)。Sentinel 本身是一个独立的进程,可以运行在多个节点上,形成分布式监控系统。下面我将详细讲解其机制,包括工作原理、配置方式、例子、优缺点、数据一致性考虑、与主从复制/集群的集成,以及最佳实践。内容基于 Redis 的最新版本(截至 2025 年 9 月 25 日,Redis 8.x),但核心兼容旧版。
1. Redis Sentinel 的概述Sentinel 是对主从复制的扩展,主要解决主节点单点故障问题。它监控主从节点的心跳,如果主节点宕机,会自动选举一个从节点升级为主,并通知客户端更新配置。
核心功能:
监控(Monitoring):定期检查主从节点的健康状态。
故障转移(Failover): ...
Redis 主从复制详解Redis 主从复制(Master-Slave Replication)是 Redis 提供的高可用性和数据冗余机制之一。它允许将一个 Redis 实例(主节点,Master)的数据实时复制到其他实例(从节点,Slave 或 Replica),从而实现读写分离、数据备份和故障转移的基础。主从复制从 Redis 2.2 开始支持,并在后续版本中不断优化(如 Redis 5.0 引入 PSYNC2 部分重同步)。下面我将详细讲解其机制,包括工作原理、配置方式、例子、优缺点、数据一致性考虑、与哨兵/集群的集成,以及最佳实践。内容基于 Redis 的最新版本(截至 2025 年 9 月 25 日,Redis 8.x),但核心概念兼容旧版。
1. Redis 主从复制的概述主从复制的核心是数据同步:主节点处理写操作,从节点复制主节点的数据,并可处理读操作。这提高了系统的读吞吐量和容错能力。
关键角色:
主节点(Master):处理所有写操作(SET、DEL 等),并将变化推送给从节点。主节点可有多个从节点。
从节点(Replica):只读(默认),实时同步主节 ...
Redis 管道详解Redis 是一个高性能的键值存储系统,支持管道(Pipelining)机制来优化客户端与服务器之间的交互。管道允许客户端一次性发送多个命令,而不等待每个命令的立即响应,从而减少网络往返时延(Round-Trip Time, RTT),特别适合高延迟网络环境或批量操作场景。下面我将详细讲解 Redis 管道的机制,包括工作原理、命令使用、配置、优缺点、与事务的比较、性能考虑,以及最佳实践。内容基于 Redis 的最新版本(截至 2025 年 9 月 25 日,Redis 8.x),但核心机制从早期版本(如 2.0)就已存在。
1. Redis 管道的概述Redis 管道是一种客户端优化技术,不是服务器端功能。它允许客户端将多个命令打包成一个请求发送到服务器,服务器处理完所有命令后一次性返回所有响应。这类似于批量处理,旨在提高吞吐量(throughput)而非降低单个命令的延迟。
核心特性:
非阻塞批量执行:命令按顺序执行,但客户端不需逐一等待响应。
原子性有限:管道本身不保证原子性(不像事务),命令是顺序执行的,但如果中途出错,后续命令仍会继续。
兼容性:支持大多 ...
Redis 事务详解Redis 是一个高性能的键值存储系统,支持事务(transactions)来处理多个命令的原子执行。Redis 的事务不同于传统数据库(如 MySQL)的 ACID 事务,它更像是命令的批量执行机制,提供原子性和隔离性,但不保证持久性和完整性(durability 和 consistency 在某些场景下有限)。Redis 事务主要用于确保一组命令要么全部成功执行,要么全部不执行,尤其适用于需要原子操作的场景,如库存扣减或转账操作。下面我将详细讲解 Redis 事务的机制,包括工作原理、命令、配置、优缺点、与 Lua 脚本的比较、数据恢复考虑,以及最佳实践。
1. Redis 事务的概述Redis 事务允许将多个命令打包成一个原子单元执行。从 Redis 2.0 开始支持,主要命令包括 MULTI、EXEC、DISCARD 和 WATCH。事务的目的是在多客户端并发环境中保持数据一致性,而不牺牲 Redis 的高性能。
核心特性:
原子性(Atomicity):所有命令要么全部执行,要么全部不执行(如果有语法错误或运行时错误)。
隔离性(Isolation):事 ...


