
go
学亮编程手记
学亮编程手记
展开
-
Mayfly-Go工具:通过Web界面实现了对服务器、数据库和缓存系统的高效管理
Mayfly-Go是一款近年来备受关注的开源工具,被誉为“Web版Linux+数据库(MySQL、Redis、MongoDB等)统一管理平台”,其功能强大且操作便捷,深受运维和开发人员的喜爱。这款工具不仅简化了复杂的命令行操作,还通过Web界面实现了对服务器、数据库和缓存系统的高效管理,堪称现代运维和开发的“瑞士军刀”。Mayfly-Go是一款集成了Linux、数据库和缓存系统管理的一站式开源工具,凭借其简洁高效的特性,正在迅速成为运维和开发领域的热门选择。原创 2025-05-19 20:28:13 · 272 阅读 · 0 评论 -
Golang代码案例:实现MySQL全局读锁释放功能
本文介绍了如何使用Golang实现MySQL全局读锁的释放功能。代码通过MySQLConfig结构体配置数据库连接,并使用sql.Open建立连接。程序首先检查Com_flush_tables_with_read_lock状态变量,判断是否存在全局读锁。如果存在,则通过执行UNLOCK TABLES语句尝试释放锁,并包含最多3次的重试机制。代码还提供了详细的错误处理和日志记录。使用前需确保具备足够的MySQL权限,并在生产环境中充分测试。原创 2025-05-19 12:22:10 · 205 阅读 · 0 评论 -
filebrowser源码解读:dir.go
这段代码的功能是根据给定的用户名、用户范围和服务器根路径创建用户的目录。用户范围为空且创建用户目录标志为真。原创 2025-03-03 16:47:35 · 760 阅读 · 0 评论 -
Golang flag包解析命令行参数:用法详解
你可以通过实现flag.Value接口来自定义标志类型。import ("flag""fmt""strings"// 自定义标志类型return nil。原创 2025-02-12 10:52:35 · 467 阅读 · 0 评论 -
Golang flag包代码示例:调用 flag.PrintDefaults() 显示帮助信息
是 Go 语言 包中的一个函数,用于打印所有已注册的命令行参数的默认值和使用说明。它通常用于帮助用户了解程序的命令行参数及其用法。命令行帮助:调试和测试:文档生成:以下是一个完整的示例,展示如何使用 :运行示例1. 不传递参数(显示帮助信息)输出:2. 传递参数输出:3. 显示帮助信息输出:输出格式 的输出格式如下:例如:注意事项参数注册:帮助信息:自定义帮助:原创 2025-02-12 10:28:00 · 155 阅读 · 0 评论 -
Golang 语言 flag 包代码示例:设置命令行参数默认值
在 Go 语言中,使用 包解析命令行参数时,可以通过 的第二个参数为参数设置默认值。以下是为你提到的 参数设置默认值的示例:代码说明定义参数:解析参数:使用参数:输出:2. 传递参数输出:原创 2025-02-12 09:50:19 · 281 阅读 · 0 评论 -
Confluent-Kafka-Go客户端的关键参数、最佳实践以及常见问题
例如,要使用LZ4压缩算法,可以将 compression.type 设置为 lz4,虽然压缩算法的 CPU 压缩,和 CPU 解压缩,发生客户端,是一种用计算换带宽的优化方式,但是由于 Broker 针对压缩消息存在校验行为会付出额外的计算成本,尤其是 Gzip 压缩,服务端的压缩计算成本会比较大,在某种程度上可能会出现得不偿失的情况,反而因为计算的增加导致 Broker 消息处理能力偏低,导致带宽吞吐更低。在跨可用区场景,以及副本数较多的 Topic,acks 参数的取值会影响消息的可靠性和吞吐量。原创 2025-02-09 13:27:53 · 1207 阅读 · 0 评论 -
Golang excelize库代码示例:读写 Excel 文件
在 Go 中操作 Excel 文件,最常用的库是 excelize,它支持读取、写入和修改 Excel 文件。原创 2025-02-03 00:35:15 · 683 阅读 · 0 评论 -
Golang sarama包操作kafka代码示例:创建topic主题、生产消息、消费消息(亲测可用)
【代码】Golang sarama包操作kafka代码示例:创建topic主题、生产消息、消费消息(亲测可用)原创 2025-02-02 23:35:37 · 182 阅读 · 0 评论 -
Golang中使用go-simplejson包解析json数组字符串代码示例
【代码】Golang中使用go-simplejson包解析json数组字符串代码示例。原创 2025-02-02 18:02:05 · 169 阅读 · 0 评论 -
Golang中使用 go-simplejson 解析 JSON 数据
是一个用于处理 JSON 数据的 Go 库,提供了便捷的 API 来解析和操作 JSON 格式的数据。它特别适合处理动态或者不确定的 JSON 数据结构。在下面的代码示例中,我们将演示如何使用解析 JSON 数据,访问不同层级的字段,以及修改 JSON 数据。原创 2025-02-02 17:53:27 · 244 阅读 · 0 评论 -
Go 中使用 net/http 包轻松实现一个简单的爬虫代码示例
在 Go 中,使用net/http包可以轻松实现一个简单的爬虫。下面是一个简单的示例,展示了如何使用 Go 的net/http和包来抓取网页并解析其中的链接。原创 2025-02-02 17:48:03 · 306 阅读 · 0 评论 -
Golang语言内存逃逸产生的主要问题
性能下降:堆分配和垃圾回收的开销较高,影响程序的响应速度和吞吐量。GC压力:大量的堆分配会增加垃圾回收的频率和停顿时间。缓存效率低:堆内存的随机访问降低了缓存命中率,导致更高的内存访问延迟。内存泄漏风险:逃逸的对象如果未被及时清理,可能导致内存泄漏。并发问题:并发程序中对堆内存的共享使用可能导致线程安全问题。为了避免这些问题,编写 Go 程序时,应该尽量减少内存逃逸,确保大部分变量能够分配在栈上,减少不必要的堆分配。原创 2025-01-30 11:57:12 · 450 阅读 · 0 评论 -
Go 语言内存逃逸(memory escape)
局部变量优先:尽量使用局部变量而非返回指针,避免不必要的堆分配。控制闭包的使用:尽量减少闭包引用局部变量,避免内存逃逸。逃逸分析:通过 Go 编译器的逃逸分析,避免将变量分配到堆上。值传递:尽量使用值传递而非指针传递,尤其是对小结构体和基础类型。原创 2025-01-30 11:45:52 · 331 阅读 · 0 评论 -
golang面试题:对未初始化的的chan进行读写,会怎么样?为什么?
向未初始化的通道写入数据:会导致 goroutine 永久阻塞,因为没有接收者。从未初始化的通道读取数据:同样会导致 goroutine 永久阻塞,因为没有发送者。原创 2025-01-27 22:02:20 · 391 阅读 · 0 评论 -
golang面试题:对已经关闭的的chan进行读写,会怎么样?为什么?
读取已关闭的通道:如果通道中还有未读取的数据,可以正常读取;如果没有剩余的数据,读取操作会立即返回零值,并且ok值为false。写入已关闭的通道:会导致运行时 panic (原创 2025-01-27 21:50:36 · 273 阅读 · 0 评论 -
Golang 语言基础:结构体与 JSON 相互转换代码示例
以下是一些常见的操作示例,包括如何将结构体转为 JSON、JSON 转为结构体,以及如何操作 JSON 数据。中,结构体与 JSON 的相互转换非常常见,主要通过标准库。如果 JSON 数据的结构不固定,可以将其解析为。对于嵌套的 JSON,可以使用结构体嵌套或解析为。标签自定义 JSON 的字段名、忽略字段等。方法将结构体转换为 JSON 字符串。方法将 JSON 字符串解析为结构体。方法生成格式化的 JSON 字符串。转换为 JSON 字符串。原创 2025-01-25 22:27:58 · 523 阅读 · 0 评论 -
Golang语言strconv包使用示例:字符串与基本数据类型之间相互转换代码示例
在 Go 中,字符串与基本数据类型之间的转换是常见的操作。使用 strconv.FormatFloat。使用 strconv.ParseFloat。使用 strconv.FormatBool。或 strconv.FormatInt。使用 strconv.ParseBool。或 strconv.ParseInt。使用 strconv.Atoi。使用 strconv.Itoa。原创 2025-01-25 12:58:53 · 362 阅读 · 0 评论 -
Go中 regexp 包常见的正则表达式操作代码示例
包用于处理正则表达式操作。用于检查字符串是否匹配某个正则表达式。与字符串操作类似,但作用于字节切片。通过一个函数动态替换匹配的字符串。通过命名捕获组提取特定的子组。编译正则表达式以提高性能。用于替换所有匹配的字符串。使用正则表达式分割字符串。原创 2025-01-25 12:29:37 · 183 阅读 · 0 评论 -
Golang 中使用 regexp 包进行各种常见的正则表达式操作代码示例
Go 语言的regexp包提供了强大的正则表达式支持,可以用于字符串匹配、查找、替换等操作。下面是一些常见的使用示例,帮助你更好地理解和使用regexp包。原创 2025-01-25 12:17:30 · 283 阅读 · 0 评论 -
Golang代码示例:调用flink cdc实现MySQL到Doris单表及多表的数据同步
【代码】Golang代码示例:调用flink cdc实现MySQL到Doris单表及多表的数据同步。原创 2025-01-23 16:42:59 · 601 阅读 · 0 评论 -
Golang K8S 回滚部署代码案例:结合SSH远程执行命令和用户交互来进行Kubernetes Deployment的回滚操作(kubectl rollout undo)
【代码】Golang K8S 回滚部署代码案例:结合SSH远程执行命令和用户交互来进行Kubernetes Deployment的回滚操作(kubectl rollout undo)原创 2025-01-07 10:50:50 · 365 阅读 · 0 评论 -
Java springboot 和 golang gin CRUD代码示例对比(纯属无聊^_^)
既然是 Crud 工程,自然要准备好操作的表,我和通过如下语句在各自的数据库中创建好了如下两张表。同样,定义 book 表和 people 表对应的实体类 Book 和 People,如下所示。为 book 表和 people 表分别定义了 Dao 接口,dao.go 文件内容如下所示。最后,简单的展示了一下对 book 表和 prople 表的 Crud 操作。book 表和 people 表的增删改成功时返回内容如下所示。book 表和 people 表的查询成功时返回内容如下所示。原创 2024-12-30 17:07:30 · 523 阅读 · 0 评论 -
windowds下交叉编译go项目报错解决: unsupported GOOS/GOARCH pair linux/amd64
编译器不能自动去掉空格,导致编译不过去。set GOOS=linux这个操作的linux后面。原创 2024-11-27 13:42:39 · 368 阅读 · 0 评论 -
golang代码示例:MySQL表加锁
该程序每隔1秒锁住指定表,然后释放锁,并循环执行。数据库连接信息和被锁定的表名可以从配置文件中读取。原创 2024-11-26 20:32:30 · 268 阅读 · 0 评论 -
Golang编码案例:编写minio客户端上传文件
【代码】Golang编码案例:编写minio客户端上传文件。原创 2024-11-12 14:42:51 · 176 阅读 · 0 评论 -
Golang编码实现同服务器内各MySQL数据库实例间单表数据高效迁移功能(mysql为docker容器运行方式)
去除mysqldump,改为手动建表。原创 2024-11-12 14:17:36 · 151 阅读 · 0 评论 -
golang代码案例:操作MySQL执行SQL脚本、操作minio实现文件上传与下载
【代码】golang代码案例:操作MySQL执行SQL脚本、操作minio实现文件上传与下载。原创 2024-11-12 14:10:50 · 143 阅读 · 0 评论 -
Golang代码案例:基于slowquery梳理MySQL慢查询SQL并发送邮件
【代码】Golang代码案例:基于slowquery梳理MySQL慢查询SQL并发送邮件。原创 2024-11-06 16:51:05 · 617 阅读 · 0 评论 -
Golang代码案例:创建http服务监听特定端口并执行df命令获取本机磁盘使用率
首先,你需要确保你的环境中已经安装了 Go 语言环境。要创建一个使用 Go 语言编写的 HTTP 服务器,并监听特定端口(如 10086),同时执行。命令来获取磁盘使用情况的信息并将其作为 HTTP 响应返回,可以按照以下步骤进行。原创 2024-10-25 11:31:02 · 230 阅读 · 0 评论 -
在Windows系统上使用setx命令设置Go的环境变量:如GOPATH
首先确保已经安装了Go。如果没有安装,可以从官方网站下载安装包:https://golang.org/dl/命令用于永久性地设置环境变量。运行这些命令后,需要重新打开命令提示符窗口才能使新的环境变量生效。但在某些情况下,尤其是使用旧版本的Go工具或依赖于GOPATH的项目时,仍然需要设置。,用于控制模块支持。如果你使用的是Go 1.13及以上版本,可以考虑使用。安装完成后,确保你的系统路径中包含了Go的安装路径(例如。在Go 1.8及更高版本中,引入了一个新的环境变量。原创 2024-10-24 17:16:45 · 622 阅读 · 0 评论 -
Golang代码案例:操作MySQL实现insert into...select ...的批量操作并显示进度条
【代码】Golang代码案例:操作MySQL实现insert into...select ...的批量操作并显示进度条。原创 2024-10-24 15:31:03 · 336 阅读 · 0 评论 -
Golang代码案例:操作MySQL对表进行重命名并显示操作过程的进度条,附Linux交叉编译步骤
如需交叉编译成Linux可执行程序,在cmd窗口执行,而非powershell。原创 2024-10-24 14:55:41 · 231 阅读 · 0 评论 -
go clean -modcache命令清理缓存
这个操作对于解决因为模块缓存导致的问题非常有用,比如当你的依赖库有更新,而你希望确保使用的是最新版本,或者缓存中的模块数据损坏时。不过,由于重新下载所有依赖可能会花费较长时间,因此这只应在确实需要时进行。时,这个命令会删除该目录下的所有内容,迫使Go在下次构建时重新下载所有依赖的模块。之后,Go会开始清理模块缓存,完成后,你在下次执行。等命令时,Go会重新检查并下载必要的模块到缓存中。命令用于清理Go模块的本地缓存。目录下,存储了所有下载和使用的模块版本。原创 2024-05-29 08:51:56 · 5498 阅读 · 0 评论 -
golang离线开发:go mod vendor命令的使用
目录包含了项目精确到某一时刻的所有依赖版本,确保了项目在未来任何时候重新构建时,使用的都是与当时一致的依赖版本,从而避免因依赖升级导致的潜在问题。中的依赖进行稳定、一致的构建。同时,一些支持Go模块的构建工具和服务,默认会查找并使用。目录后,即使在没有网络连接的情况下,也可以正常编译和运行项目,因为Go工具链会优先从。是Go语言中用于模块化管理的一个命令,它将当前项目的依赖包复制到项目根目录下的。执行后,所有项目依赖(包括间接依赖)都会被复制到。:当你把所有依赖都放入。原创 2024-04-09 08:54:01 · 1291 阅读 · 0 评论 -
golang代码示例:执行shell脚本并获取其输出日志
注意:这个例子假设你的shell脚本在同一目录下,或者在系统的PATH环境变量中定义的路径下。如果不是,请提供完整的脚本路径。在Go语言中,你可以使用"os/exec"包来执行shell脚本并获取其输出。函数会返回命令的标准输出和标准错误的合并输出。如果你希望分别处理标准输出和标准错误,可以使用。同时,确保你的脚本具有执行权限,可以通过。命令来添加执行权限。原创 2024-04-08 22:20:26 · 583 阅读 · 0 评论 -
Golang交叉编译:win11编译Linux二进制可执行程序 set GOOS=linux set GOARCH=amd64
注意: 默认情况下,Go的runtime环境变量CGO_ENABLED=1,即默认开始cgo,允许你在Go代码中调用C代码.如果标准库中是在CGO_ENABLED=1情况下编译的,那么编译出来的最终二进制文件可能是动态链接,所以建议设置 CGO_ENABLED=0以避免移植过程中出现的不必要问题。要在Windows环境下编译出能在Linux环境下运行的Go程序,你需要进行交叉编译。确保你的Windows机器上已经安装了Go,并且版本足够新,能够支持交叉编译。根据你的Linux目标机器,可能需要改变。原创 2024-04-08 21:12:04 · 633 阅读 · 0 评论 -
Golang context代码示例:带取消功能的Context、带超时限制的Context、以及如何在Context中传递自定义值
以下是一些Go语言中context。原创 2024-03-10 22:05:14 · 308 阅读 · 0 评论 -
Golang context的使用场景及与channel的区别
你可以把它想象成一份随请求生命周期流转的“护照”,这份“护照”携带着请求相关的所有重要信息,并且在整个请求处理过程中,任何地方都可以查看这份“护照”以了解请求的状态。简而言之,Context更像是一种全局的通知机制,用于控制整个请求流程的生命周期,而Channel是更为底层的并发通信原语,负责goroutine之间的具体数据交换。函数来通知所有持有该Context的goroutine,它们可以检查Context是否已经取消,从而优雅地停止自己的工作。原创 2024-03-10 22:00:48 · 521 阅读 · 0 评论 -
Golang context介绍及基本使用
包是一个设计用于处理并发任务中控制流和取消信号的核心库。它允许在多个函数和goroutine之间共享请求范围内的状态和取消信号,尤其是在服务器处理HTTP请求、数据库查询或其他涉及异步操作的地方。总结来说,Golang的Context是一个强大的工具,用于管理goroutine间的协作,尤其是取消逻辑和共享请求级别数据,有助于提升程序的健壮性和响应能力。在Go语言(Golang)中,原创 2024-03-10 21:54:43 · 333 阅读 · 0 评论