自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (2)
  • 收藏
  • 关注

原创 Docker 常用命令

Docker 是一个开源的容器化平台,提供了一系列命令行工具用于管理容器、镜像和 Docker 环境。以下是一些常用的 Docker 命令。停止容器重启容器查看运行中的容器-a 选项:查看所有容器,包括已停止的。查看容器日志进入容器交互模式或者,使用 sh:二、镜像管理查看本地镜像列表拉取镜像构建镜像删除本地镜像三、Docker Compose启动服务停止服务查看服务状态重新构建服务四、网络和数据卷查看网络列表查看数据卷列表创建自定义网

2023-11-20 00:37:22 1369

原创 linux查看资源占用情况常用命令

这个命令显示系统内存的使用情况,以兆字节(MB)为单位。你可以看到总内存、已用内存、空闲内存等信息。这个命令会显示系统中当前活动进程的实时信息,包括 CPU 使用率、内存使用率等。这个命令列出当前网络连接的详细信息,包括端口、协议、进程等。可以用于查看哪些进程在使用网络。这个命令列出系统上所有进程的详细信息,包括进程 ID、CPU 使用率、内存使用率等。这个命令会显示实时的网络流量信息,包括上传和下载速率,以及连接的源和目标地址。这个命令显示文件系统的使用情况,包括总磁盘空间、已用空间、剩余空间等信息。

2023-11-16 13:14:12 969

原创 grpc 重试机制

这也是grpc官方库里的示例代码,其他讲retry重试的基本也都是参照这种方法。但是本地配置之后没生效。换用下边第二种方式之后问题解决。参照下边连接里的示例代码,先在opts里配置重试规则,然后grpc.Dial方法里应用这个规则就可以。相对官方的方法这里的方法配置起来比较简单,而且配置完实验马上就生效了。

2023-11-10 12:40:36 439

原创 github: kex_exchange_identification: Connection closed by remote host

【代码】github: kex_exchange_identification: Connection closed by remote host。

2023-10-17 11:28:00 1344

原创 优秀的golang开源框架

Gin:高性能的 Web 框架,适用于构建 RESTful API 和 Web 应用。golang/oauth2:OAuth 2.0 的 Go 库,提供了安全认证支持。Resty:简化 HTTP 请求的库,支持链式调用和各种请求方法。Memcached:用于 Memcached 的 Go 客户端库。go-swagger:用于 Swagger 的 Go 生成工具。Casbin:强大的访问控制库,支持 RBAC、ABAC 等。Gorilla:并发编程库,提供了各种有用的并发工具。

2023-09-20 13:29:25 732

原创 grep获取查找内容的上下文

从日志文件中获取到一些报错信息,但是通常想查找更准确的原因,需要分析某一条日志临近的日志。根据下边打印出来的信息,可以详细定位到是具体哪一行代码导致的空指针问题。查看grep版本的方法是。

2022-11-18 14:04:11 2605 1

原创 golang 替换引用包的域名

背景,公司的gitlab切换了部署的服务器,以及域名。因此项目中使用gitlab域名的地方全部需要替换成新域名。

2022-10-27 09:58:35 1230

原创 Worksheet name ‘xxx‘ with case ignored, is already in use

如标题所示:excel的某一个sheet名称已存在,又被重新插入了。:sheet名称字母不区分大小写,将sheet命名为ABC和命名为abc会被excel认为是一样的sheet。

2022-09-18 23:43:05 1150

原创 golang导入私有仓库报错:“server response: not found:xxx: invalid version: git ls-remote -q origin in xxx“

1.go get导入私有仓库报错➜ go get "devops.gitlab.xxx.com/xxx/xxx"go: devops.gitlab.zfkunyu.com/cartsee-go/[email protected]: verifying go.mod: devops.gitlab.zfkunyu.com/cartsee-go/[email protected]/go.mod: reading https://goproxy.cn/sumdb/sum.golang.org/looku

2022-04-30 14:21:56 7560 3

原创 mac brew 启动服务时报错“Bootstrap failed: 5: Input/output error”

1.brew services start nginx时报错➜ opt brew services start nginxBootstrap failed: 5: Input/output errorTry re-running the command as root for richer errors.Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/wangjianwen/Library/Launc

2022-03-12 14:18:28 17811 1

原创 Redis核心技术与实战-蒋德钧-课程笔记

一、Redis知识全景图二、Redis问题画像图参考资料:https://time.geekbang.org/column/article/268247

2022-03-06 23:34:30 2733

原创 golang mongo-driver 模糊查询

1.使用mongo的正则匹配实现官方文档如下:https://docs.mongodb.com/manual/reference/operator/query/regex/#pcre-vs-javascript2.针对mong-dirver的fiter结构mongo-driver包“go.mongodb.org/mongo-driver/bson/primitive”// 其中key替换成要模糊查询的字段名,value替换成输入的要模糊查询的字符串。然后把filter传入查询函数即可// op

2022-02-24 12:46:19 1551

原创 mac goland 常用快捷键

1.批量修改变量名shift+F6键盘没有F6时 shift+fn+F62.操作记录回退或者前进比如有时候代码多次跳转之后,想一步一步回到上一次的位置。command+option+←/→3.查询与替换查询:command+F替换:command+R全局查询:command+shift+F全局替换:command+shift+R...

2022-02-10 13:08:59 2816

原创 dyld[59644]: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.66.dylib

一、背景brew install node命令安装node完成后,node -v报下边错误dyld[59644]: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.66.dylib Referenced from: /usr/local/Cellar/node@10/10.20.1_1/bin/node Reason: tried: '/usr/local/opt/icu4c/lib/libicui18n.66.dylib' (no

2021-11-09 17:48:31 1002

原创 supervisor安装及使用教程

1.mac上安装及使用教程https://www.jianshu.com/p/00fbff2c6ee1

2021-10-11 13:58:52 565

原创 linux/mac上如何查看公网ip

可使用如下命令进行尝试:curl cip.cccurl ifconfig.me示例:curl cip.cc命令在linux和mac上运行均能很快得到结果,且会返回地址、运营商等数据➜ ~ curl cip.ccIP : 223.72.80.14地址 : 中国 北京运营商 : 移动数据二 : 北京市 | 移动数据三 :URL : http://www.cip.cc/223.72.80.14参考资料:https://www.cnblogs.com/keystone/p/1

2021-10-10 22:57:35 324

原创 golang 10大排序算法

1. 快速排序思路和算法快速排序的主要思想是通过划分将待排序的序列分成前后两部分,其中前一部分的数据都比后一部分的数据要小,然后再递归调用函数对两部分的序列分别进行快速排序,以此使整个序列达到有序。快排模板1:func quick_sort(nums []int, l, r int) { if l >= r { return } rand.Seed(time.Now().Unix()) p := rand.Intn(r-l+1) + l nums[r], nums[p] =

2021-09-28 12:42:58 2481 1

原创 mongo 命令行导入导出数据

第一步,找到mongodb安装目录第二步,从命令行进入mongodb安装目录下的bin目录第三步(1),导出数据命令(导出的文件有两种格式:json/csv,此处导出的是json文件,对于导出CSV文件是需要额外指定一个变量 -field ‘对于的字段名称’):mongoexport -h 数据库所在主机地址(若是本地则为127.0.0.1,若是远程则写为远程地址IP)-d 要导出的数据库名称 -c 集合名称 -o 输出多的json文件路径导出csv文件示例 :mongoexport .

2021-09-18 09:33:22 4760

原创 mac系统 环境变量配置

1.mac环境变量加载顺序/etc/profile/etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc(etc目录下面的是系统级的配置,~目录下的是用户配置)/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取.如果/.bash_profile文件存在,则后面的几个文件就会被忽略不读了;如果/.bash_profile文件不存在,

2021-09-16 16:43:59 2430

原创 Vagrant up Warning: Authentication failure. Retrying...

1、错误信息➜ Homestead git:(main) ✗ vagrant upBringing machine 'homestead' up with 'virtualbox' provider...==> homestead: Checking if box 'laravel/homestead' version '11.3.0' is up to date...==> homestead: Clearing any previously set forwarded ports.

2021-08-16 14:25:47 299

原创 vagrant up时出错 “Command: [“hostonlyif“, “create“]”

1、具体报错信息There was an error while executing `VBoxManage`, a CLI used by Vagrantfor controlling VirtualBox. The command and stderr is shown below.Command: ["hostonlyif", "create"]Stderr: 0%...Progress state: NS_ERROR_FAILUREVBoxManage: error: Failed

2021-08-15 23:21:30 1347

原创 Makefile使用

示例1.文件目录如下2.makefile文件内容BINARY_NAME=test.PHONY: build cleanbuild: go build -o ${BINARY_NAME} -v ./${BINARY_NAME}clean: rm ${BINARY_NAME}上述内容解释:第1行,声明了一个变量BINARY_NAME他的值是test,方便后面使用第2行,.PHONY被视为“伪目标”。当需要考虑这样的目标时, make将无条件地运行它对应的内容,无论具有该名称

2021-08-13 09:48:07 154

原创 goroutine与线程的区别

1、goroutine简介Goroutine是建立在线程之上的轻量级的抽象。它允许我们以非常低的代价在同一个地址空间中并行地执行多个函数或者方法。相比于线程,它的创建和销毁的代价要小很多,并且它的调度是独立于线程的。在golang中创建一个goroutine非常简单,使用“go”关键字即可:示例:package mainimport ( "fmt" "time")func learning() { fmt.Println("My first goroutine")}func ma

2021-08-07 13:54:54 925

原创 2021golang面试题

1.golang GC

2021-08-07 13:32:46 703 1

原创 golang程序初始化顺序

1.导入顺序及初始化顺序下图展示了程序启动后导入包的顺序及初始化的顺序。导入顺序:导入包从main包开始,依次导入被引用的pkg1、pkg2、pkg3包。初始化顺序:与导入顺序相反,最后被导入的最先被初始化。pkg3、pkg2、pkg1、main每个包初始化顺序:每个文件初始化顺序都是常量、变量、init函数。如果包里有多个文件,按照文件名“从小到大”排序顺序执行。注意事项:一个包被其它多个包 import,但只能被初始化一次避免出现循环 import,例如:A –> B –&g

2021-08-07 11:52:28 435

原创 golang中锁的使用

Go中锁分为两种:互斥锁读写锁1、互斥锁并发程序对公共资源访问的限制最常见的就是使用互斥锁的方式。在Go中,sync.Mutex 提供了互斥锁的实现。package mainimport ( "fmt" "sync")var wg sync.WaitGroupvar l sync.Mutexfunc main() { var counter int for i := 0; i < 1000; i++ { wg.Add(1) go func() { l

2021-08-07 09:54:48 1120

原创 常见的并发模式

1、生产者消费者模型并发编程中最常见的例子就是生产者消费者模式,该模式主要通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。简单地说,就是生产者生产一些数据,然后放到成果队列中,同时消费者从成果队列中来取这些数据。这样就让生产消费变成了异步的两个过程。当成果队列中没有数据时,消费者就进入饥饿的等待中;而当成果队列中数据已满时,生产者则面临因产品挤压导致CPU被剥夺的下岗问题。Go语言实现生产者消费者并发简单案例:// 生产者: 生成 factor 整数倍的序列func Produc

2021-08-01 21:01:59 731

原创 golang并发模型GMP

1、并发与并行并行:其实很好理解,就是同时执行的意思,在某一时间点能够执行多个任务。最简单的方式就是借助多线程或多进程,这样才可在同一时刻执行多个任务。单线程是永远无法达到并行状态的。并发:是在某一时间段内可以同时处理多个任务。它允许多个任务同时执行,这个同时指的就是一段时间内。单线程中多个任务以间隔执行实现并发。总结:多线程或多进程是并行的基础,但单线程也通过协程实现了并发。go通过协程实现并发,协程间靠chan通信。...

2021-08-01 19:33:44 360

原创 mysql索引简介、类型、原理、规则及Explain优化查询

1、mysql索引简介MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索

2021-07-29 15:32:37 461

原创 golang垃圾回收(GC)

GC全称Garbage Collection1、常见垃圾回收算法目前比较常见的垃圾回收算法有三种:引用计数:为每个对象维护一个引用计数,当引用该对象的对象销毁时,引用计数 -1,当对象引用计数为 0 时回收该对象。代表语言:Python、PHP、Swift优点:对象回收快,不会出现内存耗尽或达到某个阈值时才回收。缺点:不能很好的处理循环引用,而实时维护引用计数也是有损耗的。标记-清除:从根变量开始遍历所有引用的对象,标记引用的对象,没有被标记的进行回收。代表语言:Golang(

2021-07-28 10:30:33 1093

原创 golang信号处理及优雅退出

每个平台的信号定义或许有些不同。下面列出了POSIX中定义的信号。 Linux 使用34-64信号用作实时系统中。 命令man 7 signal提供了官方的信号介绍。在POSIX.1-1990标准中定义的信号列表在SUSv2和POSIX.1-2001标准中的信号列表:kill pid 与 kill -9 pid的区别kill pid的作用是向进程号为pid的进程发送SIGTERM(这是kill默认发送的信号),该信号是一个结束进程的信号且可以被应用程序捕获。若应用程序没有捕获并响应该信号的逻

2021-07-01 16:14:41 1179

原创 golang map并发读写:“fatal error: concurrent map writes”

原因go中的map不是并发安全的,所以当多个goroutine同时对map执行写操作的时候,就会报刚刚的错误。解决方案1.加锁var ( someMap = map[string]string{} someMapMutex = sync.RWMutex{})go func() { someMapMutex.Lock() someMap["key"] = "value" someMapMutex.Unlock()}()someMapMute

2021-07-01 15:54:27 1362

原创 正则表达式

转义序列:正则表达式中有一些特殊的转义序列,例如 \d 表示匹配任意数字,\w 表示匹配任意字母、数字或下划线,\s 表示匹配任意空白字符等。范围类:范围类是一种特殊的字符类,它可以匹配某个范围内的字符。例如,字符类 [0-9] 可以匹配任意一个数字字符。非贪婪匹配:默认情况下,正则表达式是贪婪的,会尽可能多地匹配字符。字符类:使用字符类可以匹配一组字符中的任意一个字符。例如,^ 表示匹配行的开头,$ 表示匹配行的结尾。字符匹配:正则表达式可以匹配特定的字符。例如,字符 a 可以匹配字符串中的 a 字符。

2021-04-14 09:15:35 88 1

原创 golang ssh连接server端mysql

通过ssh方式连接msyql,mysql数据处理是用的gormpackage confimport ( "bytes" "context" "errors" "fmt" "io" "io/ioutil" "net" "os" "github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm" "golang.org/x/crypto/ssh")type ViaSSHDialer struct { client *ssh.C

2021-03-03 16:52:34 1338 6

原创 使用gitbook时如何处理 “cb.apply is not a function” error

1.进入下边文件➜ ~ vi /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js2.显示行号,并把62-64行注释掉,然后保存即可vim 处于编辑状态,输入法是英文,此时输入下边命令即可显示行号:set number 62 // fs.stat = statFix(fs.stat) 63 // fs.fstat = statFix(fs.fstat)

2021-02-09 10:32:48 528

原创 golang gin Model binding and validation

gin使用go-playground/validator.v8进行validation。tag的具体使用参考下边链接:包括常用的required、gt、max、min等的详细介绍tag详细介绍

2021-01-19 15:03:24 477

原创 golang int slice convert to string

需求:把一个int切片数据转化成字符串,以指定的分隔符分隔。具体实现方案如下边示例里的intSliceToString方法:package mainimport ( "fmt" "strings")func main() { intSlice := []int32{1, 2, 3} strSlice := intSliceToString(intSlice, ",") fmt.Println("strSlice:", strSlice)}// 下述方法里边的3行代码,任意一行都

2021-01-12 17:32:20 2590

原创 golang securecookie加密解密cookie值

github地址:https://github.com/gorilla/securecookie1.创建一个securecookie实例// Hash keys should be at least 32 bytes longvar hashKey = []byte("very-secret")// Block keys should be 16 bytes (AES-128) or 32 bytes (AES-256) long.// Shorter keys may weaken the e

2020-12-24 12:55:41 690

原创 protobuf import功能:导入同文件夹下以及不同文件夹下的proto文件

一般是为了利用另外一个proto文件里定义的结构,避免重复定义。1.导入同文件夹下proto文件如下图所示:①导入需要用到结构体所在的proto文件,下边是test.proto文件中导入了"new.proto",以便于直接使用"new.proto"中定义好的Variant结构。②直接用Variant作为类型名。生成的pb.go文件2.导入不同文件夹下proto文件可参考下边两篇文章①protobuf 导入另一文件夹下的proto②Protobuf 的 import 功能在 Go 项目

2020-12-11 00:23:54 14338 6

翻译 如何在Golang中正确序列化JSON字符串

1.Json.Marshal会有什么问题?下边示例是将json序列化成bytes,然后把bytes反序列化到匹配的结构体。package mainimport ( "encoding/json" "fmt")type Person struct { FirstName string `json:"firstName"` LastName string `json:"lastName"`}func main() { in := `{"firstName":"John","las

2020-11-12 16:45:00 2142

iOS10.0(14A5339a)

Xcode7.2上的程序运行在系统为iOS10.0.2的真机上时,会报如下错误:Could not find Developer Disk Image;需要把上述文件复制到下述路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneO‌​S.platform/DeviceSup‌​port

2016-10-07

空空如也

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

TA关注的人

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