自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go数据结构

go数据结构+常见错误

2022-09-26 17:56:44 204

原创 Go面试题

go八股文

2022-09-26 12:19:30 180

原创 Go内存逃逸

内存逃逸

2022-09-25 17:30:26 28

原创 Go goroutine泄露的原因

协程泄露

2022-09-25 17:18:29 47

原创 Golang中的GC回收机制:三色标记与混合写屏障

GC

2022-09-25 11:24:52 177

原创 GMP模型

GMP

2022-09-24 11:17:02 234

原创 水平分表之基因法

基因法:水平分表

2022-09-23 17:42:09 243

原创 Feed流之微博系统设计

feed流

2022-09-20 21:33:22 48

原创 [短链接/内推码]生成系统设计

短链接生成内推码生成

2022-09-20 15:41:56 104

原创 http2.0/http3.0(quic)/grpc

http2.0相较于http1.0的改进点http3.0相较于http2.0解决头部阻塞问题rpc与http的区别

2022-09-14 16:24:16 106

原创 Redis分布式锁(锁失效)

Redis可重入锁+Watchdog锁续期

2022-09-13 18:50:57 181

原创 kafka保证消息不丢失 / exactly once

kafka保证消息不丢失

2022-09-13 15:40:42 278

原创 分布式唯一ID生成器

分布式ID

2022-09-09 14:57:22 168

原创 vscode+golang 高效编码

1. 快捷键设置vscode:只需要设置【前进、后退】{ "tabnine.experimentalAutoImports": true, "bracketPairColorizer.depreciation-notice": false, "window.zoomLevel": 1, "editor.fontSize": 14, // 单元测试: t.Log(xxx) "go.buildFlags": [ "-v" ],

2022-03-27 14:37:59 906

原创 Golang常用逻辑

errgroup:https://github.com/go-kratos/kratos/blob/v1.0.x/pkg/sync/errgroup/doc.gopackage mainimport ( "GoRedis/pkg/errgroup" "GoRedis/pkg/str" "context" "fmt" "math/rand" "sync" "time")// chapter-1: 构造函数,"有选择"的初始化成员变量type sexType intconst

2022-03-26 18:56:28 474

原创 Redis命令

Redis 命令参考 — Redis 命令参考1. Key(键)type key功能:查看key的类型返回值:none(key不存在)、string(字符串)、list(列表)、set(集合)、zset(有序集)、hash(哈希表)exists key功能:判断key是否存在返回值:存在—1,不存在—0del key [key...]功能:删除一个或多个key,不存在的key会被...

2022-03-22 17:01:33 723

原创 Mysql面试50题

学生表:student(学号,学生姓名,出生年月,性别)成绩表:score(学号,课程号,成绩)课程表:course(课程号,课程名称,教师号)教师表:teacher(教师号,教师姓名)CREATE TABLE `t_student` ( `sid` bigint(22) NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL DEFAULT '' , PRIMARY KEY (`sid`)) ENGINE=InnoDB DE

2022-03-21 10:19:32 965

原创 golang HTTP Post请求

给定post请求包体{ "A" : 10086, "B" : "请求信息"}发送HTTP过程1. 将post请求包体(是个字符串),Marshal成json格式2. 发送HTTP请求3. 接收HTTP返回体4. 解析HTTP返回体,判断返回是否正确// HTTP: post请求参数// {// "A" : 10086,// "B" : "请求信息"// }type RequestParam struct { A int `json:"A"` B

2022-03-21 10:15:56 4959

原创 消息队列篇kafka/rocketmq

https://www.bilibili.com/video/BV1Xf4y1u7uD?p=38https://www.bilibili.com/video/BV1cf4y157sz?p=102尚硅谷rocketMq:https://www.bilibili.com/video/BV1cf4y157sz?p=1&share_medium=android&share_plat=android&share_session_id=18c0028f-b7b6-4fb6-b2ea-34a5

2021-12-18 22:43:02 948

原创 Golang: HTTP之Post请求

给定post请求包体(是json的字符串){ "A" : 10086, "B" : "请求信息"}发送HTTP过程1. 将post请求包体(是个json格式的字符串),Marshal成json格式2. 发送HTTP请求3. 接收HTTP返回体4. 解析HTTP返回体,判断返回是否正确// HTTP: post请求参数// {// "A" : 10086,// "B" : "请求信息"// }type RequestParam struc

2021-08-30 14:35:22 2262

原创 常用函数一览

// 字符串 ==> time.TimeinputTime,_ := time.ParseInLocation("20060102 15:04:05", inputTimeStr, time.Local)// time.Time ==> 时间戳int64TS := inputTime.Unix()

2021-08-24 14:42:14 41

原创 分页 splitPageSlice

/* 按照pageSize切割slice,返回第pageNo页的区间[sliceStart, sliceEnd] * @param [in] pageNo 页面编号 * @param [in] pageSize 页面尺寸 * @param [in] sliceLen 切片长度 * @return sliceStart: 切片开始 sliceEnd: 切片结尾 获取slice[sliceStart, sliceEnd] */func splitPageSlice(pageNo, pa..

2021-08-24 14:24:15 99

原创 golang每日一库

cron定时器https://segmentfault.com/a/1190000023029219

2021-08-08 20:13:15 157

原创 Golang操作SQL: 增删改查

sql编码注意事项1. 采用占位符的方式,防止sql注入,尽可能避免使用字符串拼接连接*tmpDB, err = sql.Open("mysql", connUrl)查询特殊错误码 err == sql.ErrNoRowsQueryRow()rowTotal := getDBConn().QueryRow(sqlTotalStr, whereArgs...)err = rowTotal.Scan(&stRsp.ITotal)if err != nil {..

2021-08-07 23:02:02 261

原创 词频统计、排序

package mainimport ( "fmt" "sort" _ "sort")type infoItem struct { Date string `tag:"0" required:"false" json:"date"` ID int64 `tag:"1" required:"false" json:"ID"` Score int64 `tag:"2" required:"false" json:"Score"`}type infoList struc.

2021-07-04 21:28:10 129

原创 SQL-数据库基本知识

---> 数据库语句使用分号作为一条语句的结尾# 登录数据库mysql -h 100.65.202.29 -P 4179 -u mlive -pmlive -D mlive --default-character-set=utf8 -A# 查看表select * from mlive_show_record limit 1;# 切换数据库use <数据库名># 设置使用的字符集set names utf8# 运算符: AND &a...

2021-05-22 21:34:10 121

原创 vscode配置(关键字/变量名/函数名)等颜色

code .vscode/settings.json{ "editor.tokenColorCustomizations": { // "keywords": "#fa0303", // 关键字 // "variables": "#fa0303", // 变量名 "functions": "#fa0303", // 函数名s // "strings": "#ffffff", // 字符串

2021-05-21 15:33:40 5954

原创 Golang -- 空接口interface{} -- 类型转换x.(type)

已知,空接口可以表示/接收任意类型,因此,空接口可以转换为预期的类型,以下介绍两种使用方法将变量x,转换为指定类型/* * 变量x,转换为指定类型,结果保存在y中 * @return ok 转换成功/失败 * y 转换后,x保存在y中 */y, ok = x.(具体类型)断言变量x的类型是什么/* * 判断x的类型是什么,必须结合switch...case...一起使用 */y, ok = x.(type)示例代码package

2021-04-29 10:18:36 1241

原创 Golang--构造函数--设计模式--函数式选项

本文通过案例介绍【函数式选项设计模式】package mainimport "fmt"type Student struct { name_ string age_ int}// 编写: 传统的构造函数func newStudent1(name string, age int) *Student { return &Student{ name_: name, age_: age, }}/**** 下面介绍新版构造函数的写法 ****//* 解决2个问题

2021-04-28 17:17:50 177

原创 Golang--反射--reflect

反射 reflect反射是指程序运行期间对程序本身进行访问和修改的能力。⇒ 程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息支持反射的语言,可以在程序编译期间将变量的反射信息,如:字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在程序运行期间获取类型的反射信息,并且有能力修改它们。概括为一句话:反射就是在运行时动态的获取一个变量的类型信息和值信息1. reflect.Typeof获得任意值的

2021-04-28 10:44:21 85

原创 Golang--包--fmt/time/flag/sort

写在最前:包package一个文件夹下面只能有一个包,同样一个包的文件不能在多个文件夹下包名可以不和文件夹的名字一样,包名不能包含-符号如果想在一个包中已用另一个包中的标识符(变量、常量、类型、函数),该标识符必须是对外可见的(public)。在Go语言中将标识符的首字母大写就可以让标识符对外可见了package pkgimport "fmt"var a = 100 // 首字母小写,外部包不可见,只能在当前包内使用const Mode = 1 // 首字母大写,外部包课件,可在其他包中

2021-04-28 10:40:03 131

原创 Golang--详解Context

1-Context 应用场景①上层任务取消后,所有的下层任务都会被取消;②中间某一层的任务取消后,只会将当前任务的下层任务取消,而不会影响上层的任务以及同级任务。业务需要对访问的数据库,RPC ,或API接口,为了防止这些依赖导致我们的服务超时,需要针对性的做超时控制为了详细了解服务性能,记录详细的调用链Log2-Context 原理Context 的调用应该是链式的,从Context 派生出新的子类:WithCancel、WithDeadline/WithTimeout、WithValu

2021-04-27 19:47:55 140

原创 Golang--实战开发配置--Goland(git / ftps / SSH / 快捷键)

文章目录1. Goland安装2. 配置git blame开发工具3. 安装shellcheck1. Goland安装下载+安装: Go 安装包备注:安装后,记得配置环境变量下载 + 安装: Goland集成开发工具2. 配置git blame开发工具打开 File -> Settings -> Version Control -> Git,在 Path to Git executable 处选择 git 的安装位置备注:配置完成之后,点击【Test】按钮,如果成功,

2021-04-26 12:47:06 2805 1

原创 Golang--并发编程--goroutine/channel/select/sync(WaitGroup/Once/Map)

写在最前Go语言的并发通过goroutine实现:OS线程是由OS内核来调度的,goroutine则是由Go运行时(runtime)自己的调度器(GPM)调度的G很好理解,就是个goroutine的,里面除了存放本goroutine信息外,还有与所在P的绑定等信息。P管理着一组goroutine队列,P里面会存储当前goroutine运行的上下文环境(函数指针,堆栈地址及地址边界),P会对自己管理的goroutine队列做一些调度(比如把占用CPU时间较长的goroutine暂停、运行后续的g

2021-04-26 11:03:02 172

原创 Golang--基础精讲(一文看懂Golang基本用法)

关键字var:变量声明var 变量名 变量类型变量名 := 变量值const:常量,代表永远只读,不能修改(bool、数值、string)type:声明自定义类型type add_func func(int, int) inttype People struct { name string age int}range:读取slice、map、channelfallthrough1.加了fallthrough后,会直接运行【紧跟的后一个】case或default语

2021-04-22 17:18:43 1311 1

原创 IFS分割符

https://blog.csdn.net/earthchinagl/article/details/808048931、查看变量 IFS 的值。$ echo $IFS $ echo "$IFS" | od -b 0000000 040 011 012 012 0000004直接输出IFS是看不到的,把它转化为二进制就可以看到了,"040"是空格,"011"是Tab,"012"是换行符"\n" 。最后一个 012 是因为 echo 默认是会换行的。...

2021-03-29 20:29:06 46

原创 github: 合并一个仓库的代码到本地仓库

562 git checkout -b feature/merge # 新建分支 # 在本分支下,添加要合并的分支到远端仓库(origin_306) 563 git remote add origin_306 git@mq.code.sangfor.org:VS/VS3.0.6.git # 拉取要合并分支的代码 565 git fetch origin_306 # 合并origin_306到当前分支 566 git merge origin_306/..

2021-01-21 12:35:52 466

原创 opencv字符切割与识别(训练分类器)

#include <iostream>#include <stdlib.h>#include <stdio.h>#include <opencv2/opencv.hpp>#include <map>#include <time.h>using namespace cv;using namespace std;//膨胀的size(3,3)int dilateValue = 1;//面积、宽高比double .

2021-01-15 16:30:32 1163 1

原创 shell: 修改文件名 mv

for var in `find . -name *.cc`; do mv $var `echo $var | sed 's/.cc/.cpp/g'`; done

2021-01-07 17:41:36 362

原创 程序死循环/卡锁问题定位与分析

死循环Glusterfs如果代码中出现死循环,过段时间后,虚拟机将会被异常挂起(io异常),df命令也会卡主!死循环代码段定位pstack 进程号pstack是通过采集某个时间点,当前进程调用函数的情况,通过多次调用pstack,发现某个函数一直出现,那么,绝大多数情况下,该函数出现(死循环or死锁)。假设func函数出现的概率很高假设就是出现了死锁、死循环,那么这两种情况有所不同。死锁:pstack显示卡死的代码行永远是某一行死循环:pstack显示卡死的代码一直在某个函数范围内,但是行号

2020-07-17 00:12:23 1449 1

空空如也

空空如也

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

TA关注的人

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