for i := 0; i < 32; i++ { fmt.Printf("node %d start\n", i) var cursor int for { values, err := redis.Values(r.Do("ISCAN", i, cursor, "COUNT", 500, "MATCH", "rc:2019*")) if err != nil { fmt.Println(err) return }
从 go1.11 开始,go 引入了 go mod 模块。在 $GOPATH 目录下,默认 go mod 是不启用的,需要手动执行 GO111MODULE=on来进行开启。
新项目中 go mod 的使用
1 2 3 4 5 6 7 8 9 10 11 12
//初始化 go mod go mod init $package_name //获取包 go get $package_name@$version //下载依赖,会将依赖下载到 $GOPATH/pkg/mod go mod download ./... //将依赖下载到 vendor 包 go mod vendor //添加引用但是还没下载的 mod go mod tidy //更新包版本 go get -u
旧项目中 go mod 的使用
1 2 3 4
export GO111MODULE=on //初始化 go mod go mod init $package_name go mod tidy
在 go1.5 之前,go 使用第三方包时需要通过 go get 命令。使用 go get 命令获取的包都会存在于 GOSRC 中,这样的话团队之间控制第三方包会产生很多问题。在 go1.5 之后,go 会优先检测 vendor 目录下的包,之后会检测 GOSRC,这样总是会产生一些问题,比如包名不同,或者是依赖补全。合理使用 govendor 可以解决这个问题。
获取指定的包
1
govendor fetch package
列出项目所有的包
1 2 3 4 5 6
govendor list m missing 本地缺失 l local 在当前 vendor 中 p program u unused e external
SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 2;
通过上面两句命令便可以开启慢查询了。
通过 slow_log 表可以获取慢查询的具体情况:
1
select * from mysql.slow_log order by start_time desc;
slow_log 的表结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14
CREATE TABLE `slow_log` ( `start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `user_host` mediumtext NOT NULL, `query_time` time(6) NOT NULL, `lock_time` time(6) NOT NULL, `rows_sent` int(11) NOT NULL, `rows_examined` int(11) NOT NULL, `db` varchar(512) NOT NULL, `last_insert_id` int(11) NOT NULL, `insert_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `sql_text` mediumblob NOT NULL, `thread_id` bigint(21) unsigned NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
查看 slow_log 相关配置
1
show variables like 'slow_query_log%';
结果是
1 2 3 4 5 6
+---------------------+--------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------+ | slow_query_log | ON | | slow_query_log_file | /var/lib/mysql/hostname-slow.log | +---------------------+--------------------------------------+