06 2018 档案
摘要:defer和go一样都是Go语言提供的关键字。defer用于资源的释放,会在函数返回之前进行调用。一般采用如下模式: 如果有多个defer表达式,调用顺序类似于栈,越后面的defer表达式越先被调用。 不过如果对defer的了解不够深入,使用起来可能会踩到一些坑,尤其是跟带命名的返回参数一起使用时。
阅读全文
摘要:Go中的map在底层是用哈希表实现的,你可以在 $GOROOT/src/pkg/runtime/hashmap.goc 找到它的实现。 数据结构 哈希表的数据结构中一些关键的域如下所示: 上面给出的结构体只是Hmap的部分的域。需要注意到的是,这里直接使用的是Bucket的数组,而不是Bucket*
阅读全文
摘要:在内存中的形式 首先看一下在go中,一些基础类型在内存中是以什么形态存在的,如下图所示: 变量j的类型是int32, 而变量i的类型是int,两者不是同一个类型,所以赋值操作i=j是一种类型错误cannot use j (type int32) as type int in assignment。
阅读全文
摘要:为了排查问题,对数据库的监控是必不可少的,在此介绍下 MySQL 中的常用监控指标。 简介 MySQL 有多个分支版本,常见的有 MySQL、Percona、MariaDB,各个版本所对应的监控项也会有些区别,在此仅介绍一些通用的监控项。 通常,监控项的源码是在 mysql/mysqld.cc 文件
阅读全文
摘要:对于经常使用ssh或者pssh的用户来说sshpass绝对是个好工具 通常在写脚本的时候想通过ssh获取机器的一些信息,但是批量操作的时候经常需要输入密码,而且如果同一批机器密码一样也得输入多次。 sshpass的发现解决的这个问题,下面我就列几个我自己常用的操作
阅读全文