随笔分类 - Go
摘要:Go标准库Context 在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的
阅读全文
摘要:Go语言基础之net/http Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 Go语言内置的net/http包提供了HTTP客户端和服务端的实现。 一、HTTP协议 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最
阅读全文
摘要:Go语言内置包之strconv Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换。 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()、Itoa()、parse系列、format系列、append系列。 更多函数请查看官方文档。 一、str
阅读全文
摘要:Go语言文件操作 文件是什么? 计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。 一、打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。 package main imp
阅读全文
摘要:Go语言标准库log介绍 无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。 Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 一、使用Logger log包定义了Logger类型,该类型提供了一
阅读全文
摘要:Go语言基础之time包 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法。 time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 一、时间类型 time.Time类型表示时间。我们可以通过time.Now()函数获取当前的时间对象,然后获取时间对象
阅读全文
摘要:Go语言标准库flag基本使用 Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。 一、os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package main import ( "fmt" "os
阅读全文
摘要:Go语言fmt.Printf使用指南 fmt标准库是我们在学习Go语言过程中接触最早最频繁的一个了,本文介绍了fmtb包的一些常用函数。 fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 向外输出,标准库fmt提供了以下几种输出相关
阅读全文
摘要:Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。 一、Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端
阅读全文
摘要:sqlx库使用 在项目中我们通常可能会使用database/sql连接MySQL数据库。本文借助使用sqlx实现批量插入数据的例子,介绍了sqlx中可能被你忽视了的sqlx.In和DB.NamedExec方法。 一、sqlx介绍 在项目中我们通常可能会使用database/sql连接MySQL数据库
阅读全文
摘要:Go操作MySQL MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。 我们常用的数据库基本上都
阅读全文
摘要:在Go语言项目中使用Zap日志库 Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档。 一、在Go语言项目中使用Zap日志库 介绍 在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 能够将事
阅读全文
摘要:Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。 一、Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端
阅读全文
摘要:sqlx库使用 在项目中我们通常可能会使用database/sql连接MySQL数据库。本文借助使用sqlx实现批量插入数据的例子,介绍了sqlx中可能被你忽视了的sqlx.In和DB.NamedExec方法。 一、sqlx介绍 在项目中我们通常可能会使用database/sql连接MySQL数据库
阅读全文
摘要:Go操作MySQL MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。 我们常用的数据库基本上都
阅读全文
摘要:Elasticsearch 介绍 Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB
阅读全文
摘要:grafana使用 官网 安装 win下载地址 docker安装 解压文件 安装文档 修改配置文件 启动端口3000 登录 默认密码:admin/admin 添加数据源 设置数据源为 InfluxDB 注意上面虽然显示成功只是显示数据资源更新成功并不代表连接influxdb成功 设置仪表盘 下载插件
阅读全文
摘要:gopsutil psutil是一个跨平台进程和系统监控的Python库,而gopsutil是其Go语言版本的实现。本文介绍了它的基本使用。 Go语言部署简单、性能好的特点非常适合做一些诸如采集系统信息和监控的服务,本文介绍的gopsutil库是知名Python库:psutil的一个Go语言版本的实
阅读全文
摘要:influxDB 本文介绍了influxDB时序数据库及Go语言操作influxDB。 InfluxDB是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。 教程 安装 下载地址 文档 github 2.2下载 2.2安装 将上一步的压缩包,
阅读全文
摘要:Go语言操作etcd 这里使用官方的etcd/clientv3包来连接etcd并进行相关操作。 安装 go get go.etcd.io/etcd/clientv3 报错处理: // 在go.mod中添加这个两句话 replace github.com/coreos/bbolt v1.3.4 =>
阅读全文