自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 收藏
  • 关注

原创 mysql外键

首先明确一个概念,假如表A(id,name,foreign_id),表B(foreign_id,name),我们说表A参考了表B的主键作为其外键使用,所以B表示父表,A表是子表删除和更新有四种设置方式(1)cascade:级联,当父表更新、删除,子表会同步更新和删除(2)set null:置空,当父表更新、删除的时候,字表会把外键字段变为null,所以这个时候设计表的时候该字段要允许为null,否则会出错(3)restrict:父表在删除和更新记录的时候,要在子表中检查是否有有关该父表要更新和删除.

2021-08-31 10:33:23 156

原创 docker笔记三-4种网路模型

docker run -it --rm 镜像名 /bin/ship add # 进入容器内的命令行执行,这是默认的NATdocker run -it --rm --net=none 镜像名 /bin/ship add # 进入容器内的命令行执行,指定为NONE网络

2021-08-31 08:36:45 108

原创 docker笔记二 -- dockerfile

vi /data/dockerfile/DockerfileFROM nginx:latestUSER nginxWORKDIR /usr/share/nginx/html # workdir 切换到此目录# 保存Dockerfile并退出文件编辑docker build . -t 镜像名:tag # 通过当前目录下的Dockerfile构建镜像docker run --rm -it --name 容器名 镜像名:tag /bin/bash # (-it 最后要加/bin/bash才能进入交.

2021-08-29 23:42:00 254

原创 docker运行mysql

hub地址拉取镜像:docker pull mysql运行容器:docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin -d mysql:latest

2021-08-29 15:37:19 151

原创 go 包 性能分析工具 Pyroscope

启动 Pyroscope 服务:docker run -it -p 4040:4040 pyroscope/pyroscope:latest server启动后浏览器打开:localhost:4040 即可访问客户端启动agentimport "github.com/pyroscope-io/pyroscope/pkg/agent/profiler"// 在项目里入以下代码即可profiler.Start(profiler.Config{ ApplicationName: "sim

2021-08-16 17:02:25 635

原创 go tool pprof

package mainimport ( "log" "net/http" _ "net/http/pprof" "time")var datas []stringfunc main() { go func() { for { log.Printf("len: %d", Add("go-programming-tour-book")) time.Sleep(time.Second) } }() // http://127.0.0.1:6060/debug/p

2021-08-16 11:46:30 177

原创 go sql转结构体 sql2struct

http://sql2struct.atotoa.com/

2021-08-09 14:05:42 1027

原创 内存对齐原则

package mainimport ( "fmt" "time" "unsafe")type OfSize struct { Name uint64 Ct uint32 Bt byte}func main() { var hh OfSize fmt.Println(unsafe.Sizeof(hh)) // 16 字节 fmt.Println(unsafe.Sizeo

2021-08-05 10:09:48 73

原创 go包 interface解析到结构体github.com/mitchellh/mapstructure

package mainimport ( "fmt" "github.com/mitchellh/mapstructure")// go get github.com/mitchellh/mapstructure// 将interface解析到结构体上func main() { InterfaceToStruct() Squash() TypeErr() Remain()}type Person struct { Name string Age int

2021-08-05 09:37:33 528

原创 go包 golang.org/x/sync/errgroup

package mainimport ( "context" "errors" "fmt" "runtime" "time" "golang.org/x/sync/errgroup")func main() { group() for { fmt.Println(runtime.NumGoroutine()) time.Sleep(time.Second) }}func group() { var eg errgroup.Group eg.Go(func

2021-08-04 14:38:01 622

原创 go post请求

import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" "strings")//PostJSON post json 数据请求func PostJSON(uri string, obj interface{}) ([]byte, error) { jsonData := make([]byte, 0, 0) if str, ok := obj.(string); ok { jsonData = []byte(st

2021-08-03 16:00:48 2893

原创 go库excel https://github.com/xuri/excelize

中文文档

2021-08-02 14:07:27 1530

原创 go包 github.com/gomodule/redigo/redis

package mainimport ( "fmt" "github.com/gomodule/redigo/redis" "time")// go get github.com/gomodule/redigo/redisvar Redis *RedisPoolfunc main(){ // 初始化redis连接池 Redis = &RedisPool{} Redis.InitRedisPool("") structAdd() structValues()}

2021-08-02 10:56:24 1964

原创 golang http请求出现400 Bad Request net/url

这是因为时间没有转码,要使用url.QueryEscape()// import "net/url"start := url.QueryEscape("2021-07-13 14:20:48")match_end_time := url.QueryEscape("2021-07-13 14:25:48")res, err := ReadMatchUser("GET", "http://xxxxxx/api/v1/dzzs-app/match/crowd?match_start_time="+star

2021-07-19 17:01:15 1654

原创 go包-取交集、差集包 github.com/fatih/set

package mainimport ( "fmt" "github.com/fatih/set")// go get github.com/fatih/setfunc main() { section1 := []string{"33", "22", "11"} section2 := []string{"33", "22","66"} hh := DifferenceString(section1, section2) fmt.Println(hh) // [11]}//

2021-07-14 15:32:50 456

原创 mysql的explain分析sql性能

可在sql前加explain:explain format=json sql;explain format=tree sql;explain sql;-- 其中shop_tid 是唯一键explain select * from oms_order_____1d where shop_tid ='id';-- 查询结果id|select_type|table |partitions|type |possible_keys |key

2021-06-24 17:23:28 486

原创 k8s笔记一

官方文档 https://kubernetes.io/zh/docs/home/1.下载kubectl ,并添加到环境变量kubernetes:https://dl.k8s.io/release/v1.21.0/bin/windows/amd64/kubectl.exekubectl version --client # 查看kubectl 版本kubectl completion zsh # 生成 Zsh 自动补全脚本2.下载安装Minikube(在本机运行集群需要,学习使用)下载地址

2021-06-07 16:51:19 192

原创 go-zero使用笔记

生成单体服务代码goctl api new leaf 此命令就生成了leaf的web项目代码,目录结构如下:其中leaf是web项目目录,etc里是配置,handler是路由处理函数和路由,logic是路由的逻辑处理函数,leaf.go是项目入口文件创建微服务项目mkdir mall && cd mallmkdir -p user/rpc && cd user/rpc添加user.proto文件,增加getUser方法 vim mall/user/rp

2021-05-21 15:49:31 833 1

原创 go调用rpc方法报408 context deadline exceeded

如果调用所有rpc方法都是408,可能是rpc服务和调用rpc方法的服务 没有注册在同一个服务发现中,如不在同一个consul里。

2021-05-21 11:08:50 2536 2

原创 mysql的有序UUID

CREATE TABLE `test_save` ( `id` binary(16) NOT NULL COMMENT '主键uuid', `created_at` timestamp NOT NULL, `updated_at` timestamp NOT NULL, `deleted_at` datetime DEFAULT NULL, `remark` varchar(256) NOT NULL DEFAULT '' COMMENT '备注', `shop_oid` varch

2021-05-20 16:05:55 1231

原创 go超时控制

func Close() { ch := make(chan struct{}) go func() { // TODO s.Close() time.Sleep(time.Second*2) close(ch) }() select { case <-ch: fmt.Println("close ok") case <-time.After(time.Second): fmt.Println("close timeout") }}

2021-05-19 17:04:31 61

原创 go单元测试

在goland中,右键选择GO TO -> Test,即可自动生成test文件

2021-05-19 15:53:04 152

原创 goland下载后运行没有反应

因为误删东西,导致goland无法启动,重启、重装都不行;下载 Everything搜索goland,删除所有搜索到的,再重装就可打开

2021-05-12 13:44:12 1152

原创 mysql的sql_mode

create table test51( sale bigint unsigned default 0, sale_date date not null)engine=InnoDB default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment = '测试';insert into test51(sale,sale_date) values(10000,'2021-01-01'),(8000,'2021-02-01'),(12000,'2021

2021-04-30 16:30:24 76 1

原创 单位1byte=8bit

1byte=8bit1kb=1024byte=1024*8bit

2021-04-30 14:18:45 1185

原创 mysql 内置查询

查看系统变量:语法show [global|session] variables [like '']show variables -- 查看系统变量(默认是查看session,当前会话的系统变量)show global variables -- 查看全局系统变量show variables like 'max_connections' -- 查看 运行连接的最大客户端数量查看状态变量语法 show [global|session] statusshow status -- 查看所有状态

2021-04-25 17:38:51 344

原创 go结构体排序

package mainimport ( "fmt" "sort" "time")type Student struct { CreatedAt time.Time}type res []*Studentfunc (a res) Len() int { return len(a) }func (a res) Swap(i, j int) { a[i], a[j] = a[j], a[i] }func (a res) Less(i, j int)

2021-04-14 14:49:37 280

原创 安装nacos

下载java SDK解压vim /etc/profile加上下面的环境变量export JAVA_HOME=/usr/lib/java/jdk-15.0.2export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile # 使配置文件生效下载nacos,解压,进入bin目录 ./startup.sh -m standalone # 以单机方式启动...

2021-02-05 16:55:07 80

原创 复制宿主机上的文件到docker容器

# 在宿主机上把D:\\jdk-15.0.2_linux-x64_bin.tar.gz拷贝到容器名为gallant_goodall的 / 目录;宿主机上执行docker cp D:\\jdk-15.0.2_linux-x64_bin.tar.gz gallant_goodall:/

2021-02-05 16:42:12 256

原创 go 解析token

//import "encoding/base64"func token() { hh, err := base64.RawURLEncoding.DecodeString("eyJuYW1lIjoiem55Iiwib3BlbmlkIjpudWxsLCJuaWNrbmFtZSI6bnVsbC**********oHpm4UCJhdXRocyI6WyJzYS5xYSJdLCJpYXQiOjE2MTE5MDY4NzgsImV4cCI6MTYxNDg3OH0") if err != nil { fmt.

2021-01-29 16:07:18 884

原创 熔断器hystrix、sentinel

hstrix:// 超时代码// import github.com/afex/hystrix-go/hystrix// 1.配置configconfigA := hystrix.CommandConfig{ Timeout: 1000,}// 2.配置commandhystrix.ConfigureCommand("getProds", configA)// 3.执行Do方法var prodRes *models.ProdListResponseerr := hystrix.Do("

2021-01-28 14:05:11 299

原创 go - time 获取指定时间所在月份的第一天0点

//获取传入的时间所在月份的第一天,即某月第一天的0点。如传入time.Now(), 返回当前月份的第一天0点时间。func GetFirstDateOfMonth(d time.Time) time.Time { d = d.AddDate(0, 0, -d.Day()+1) return GetZeroTime(d)}//获取传入的时间所在月份的最后一天,即某月最后一天的23:59:59。如传入time.Now(), 返回当前月份的最后一天0点时间。func GetLastDateOfMo

2021-01-08 11:49:27 1013

原创 mongoDB备份还原

导出数据语法:mongodump -h -port -u -p -d -o-h 服务器地址(一般不写,默认本机)-port 端口(一般不写,默认27017)-u 账号-p 密码-d database 数据库(不写,则导出全局)-o open 备份到指定目录下# 备份所有数据mongodump -u admin -p 123456 -o /back # 要提前建好目录mkdir back2mongodump -u shop1 -p 123456 -d shop -o /back2 #

2021-01-04 23:12:50 123

原创 mongoDB权限机制

1.添加超级管理员use admindb.createUser({ "user":"admin", -- 用户名 "pwd":"123456", "roles": [{ role: "root", -- 角色 db:"admin" -- 所属数据库 }]}) # 添加超级管理员# 退出mogodb命令模式,到mongodb\bin目录下执行 # 使用用户名密码登录mongodb mongo 服务器地址:mongoDB端口/数据库名 -u 用户名 -p 密码mongo

2021-01-04 22:49:37 276

原创 mongoDB索引分析

db.tb3.find().explain('executionStats')结果如下:{ "queryPlanner" : { "plannerVersion" : 1, "namespace" : "test.tb3", "indexFilterSet" : false, "parsedQuery" : { }, "winningPlan" : {

2021-01-04 22:11:48 195

原创 mongoDB语法

docker pull mongo # 拉去mongoDB镜像-- 启动mongoDB容器后,进入它的命令行运行mongo # 连接mongo服务(有密码: mongodb://admin:123456@localhost/)show dbs # 查看所有数据库use admin # 选择数据库admin,没有则自动创建db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db

2020-12-31 17:14:08 344

原创 go去掉proto文件中的omitempty

/d/work/src/新建文件夹/新建文件夹/falcon/src/srv/order (dev-bbtc/v0.0.3)$ ls proto/order/*.pb.go | xargs -n1 -IX bash -c 'sed s/,omitempty// X > X.tmp && mv X{.tmp,}'去掉proto/order/*.pb.go的 ,omitempty

2020-12-23 17:20:44 1720

原创 mysql按某字段排序的第一条数据

-- 按pay_time排序,查询pay_amount的第一条select cust_id,outer_id,substring_index(group_concat(pay_amount order by pay_time asc),",",1) as first_trade_money from tableName WHERE (cust_id in (271427)) AND (`from` = "MA") AND (pay_time is not null) group by cust_id

2020-12-16 15:13:08 773

原创 mysql创建索引

1.PRIMARY KEY(主键索引)mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.UNIQUE(唯一索引)mysql>ALTER TABLE `table_name` ADD UNIQUE (`column` ) 3.INDEX(普通索引)mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

2020-12-14 14:13:57 84

原创 go中的break label

break label,break的跳转标签(label)必须放在循环语句for前面,并且在break label跳出循环不再执行for循环里的代码。package mainimport ( "fmt")func main() { fmt.Println("break label")EXIT: // label: 下面必须是循环 for i := 0; i < 3; i++ { fmt.Println(i) if i == 2 { // 当i=2时,

2020-11-23 14:18:39 409

空空如也

空空如也

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

TA关注的人

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