摘要: 资源文件内容 apiVersion: apps/v1 kind: Deployment metadata: name: deployment- labels: app: "1234" spec: selector: matchLabels: app: "1234" replicas: 1 templ 阅读全文
posted @ 2021-11-24 00:24 Kingram 阅读(354) 评论(0) 推荐(0) 编辑
摘要: package main import ( "context" "fmt" "github.com/panjf2000/ants/v2" "time" ) /* test ants&context demo @kingram */ type Task struct { index int } fun 阅读全文
posted @ 2021-12-01 23:16 Kingram 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 分页查询主要用到limit和offset两个查询参数 limit limit表示每一页多少条记录 offset offset表示每一页的第一条记录的偏移量 举个例子: 第一页的偏移量从0开始算起,如果limit为3,则第一页的查询条件为limit 3 offset 0; 按照上面的条件limit为3 阅读全文
posted @ 2021-11-27 21:43 Kingram 阅读(802) 评论(0) 推荐(0) 编辑
摘要: /* 一个安全关闭的的协程模型 */ type MyChannel struct { C chan struct{} once sync.Once } func NewMyChannel() *MyChannel { return &MyChannel{C: make(chan struct{})} 阅读全文
posted @ 2021-09-15 17:54 Kingram 阅读(739) 评论(0) 推荐(0) 编辑
摘要: 建造者模式 在软件开发中有时需要创建一个复杂的对象,这个对象有很多小对象按照一定的步骤组成,例如计算机是由主板、内存、cpu、硬盘、显卡等组件组成,采购员不可能自己组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司再安排技术人员组装计算机,再交给采购员 生活中这种例子也有很多,比如 阅读全文
posted @ 2021-08-16 17:23 Kingram 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 每一个都很重要!!!牢记!!!! 行注释ctrl+/ 段注释ctrl+shift+/ 复制行ctrl+d 剪切行/删除行ctrl+x 快速移动行ctrl+shift+上下 跳到上一个光标处ctrl+alt+左右 定位某行ctrl+g 代码提示 alt+/ 打开最近文件ctrl+e 查找文本 在当前文 阅读全文
posted @ 2021-08-05 17:01 Kingram 阅读(651) 评论(4) 推荐(1) 编辑
摘要: 接上文:传送门 在使用hugo + nginx搭建好博客后,文章可以通过ftp上传到服务器,然后在服务器上再编译成网页,或者本地搭建的hugo环境,编译好网页再上传到服务器,这样做虽然也可以,但是很麻烦,如果每次都这么发布文章,肯定玩几次就不想弄了。 使用webhook就能实现自动部署,其实原理很简 阅读全文
posted @ 2021-07-15 08:03 Kingram 阅读(784) 评论(1) 推荐(0) 编辑
摘要: 作为一个萌新Gopher,经常逛网站能看到那种极简的博客,引入眼帘的不是花里胡哨的图片和样式,而是黑白搭配,简简单单的文章标题,这种风格很吸引我。正好看到煎鱼佬也在用这种风格的博客,于是卸载了我的wordpress开始抄袭,o(* ̄︶ ̄*)o Hugo简介 Hugo是由Go语言实现的静态网站生成器。 阅读全文
posted @ 2021-07-14 09:32 Kingram 阅读(3258) 评论(0) 推荐(1) 编辑
摘要: 前言 我在项目上写了个配置页面,之前很简单直接登录,毕竟配置页面自己人用就没有做token机制,后来公司的安全审核不过,现在要加上token和刷新机制。小结一下。 token和刷新机制 token机制就是在登录成功后返回一个token,并缓存起来,之后每个请求头里带上token,后端验证不通过返回4 阅读全文
posted @ 2021-06-29 16:05 Kingram 阅读(5121) 评论(3) 推荐(3) 编辑
摘要: 结论 go中是先给return准备返回值,再根据defer先进后出的规则执行,最后将返回值返回给调用者 测试用例1验证分析 代码片段如下: func foo_1() (err error) { defer func() { fmt.Println(err) err = errors.New("a") 阅读全文
posted @ 2021-03-17 11:47 Kingram 阅读(914) 评论(0) 推荐(1) 编辑
摘要: cpu要想从内存读取数据,需要通过地址总线,把地址传输给内存,内存准备好数据,输出到数据总线,交给cpu,如果地址总线只有8根,那这个地址就只有8位可以表示[0,255]256个地址,因为表示不了更多的地址,就用不了更大的内存,所以256就是8根地址总线最大的寻址空间,要使用更大的内存,就要有更宽的 阅读全文
posted @ 2021-02-19 14:28 Kingram 阅读(565) 评论(0) 推荐(0) 编辑
摘要: slice有三个部分,第一部分,元素存哪里;第二部分,存多少个元素;第三部分,可以存多少个元素。 举个栗子: 声明一个整型slice var ints []int 变量ints就有这样三个部分组成 slice的元素要存在一个连续的内存中,实际上就是个数组,data就是这个底层数组的起始地址,但是目前 阅读全文
posted @ 2021-02-04 10:03 Kingram 阅读(552) 评论(0) 推荐(0) 编辑
摘要: Go语言深度比较值是否相等 阅读全文
posted @ 2021-01-12 13:53 Kingram 阅读(809) 评论(0) 推荐(0) 编辑
摘要: Go语言中的有缓冲channel和无缓冲channel区别 结论 ch1:=make(chan int)// 无缓冲 ch2:=make(chan int,1)// 有缓冲 无缓冲: 当向ch1中存值后需要其他协程取值,否则一直阻塞 有缓冲: 不会阻塞,因为缓冲大小是1,只有当放第二个值的时候,第一 阅读全文
posted @ 2020-09-29 10:06 Kingram 阅读(1096) 评论(0) 推荐(0) 编辑
摘要: Go语言十进制转二进制字符串 代码Demo func Test_2(t *testing.T) { // 方法一 fmt.Println(DecToBin(5)) // 方法二:导入包"github.com/imroc/biu" fmt.Println(biu.ToBinaryString(uint 阅读全文
posted @ 2020-09-23 13:35 Kingram 阅读(3960) 评论(0) 推荐(1) 编辑
摘要: Go语言十六进制转十进制 代码Demo import ( "fmt" "strconv" "testing" ) func Test_1(t *testing.T) { s:= "0e" if parseUint, err := strconv.ParseUint(s, 16, 32);err != 阅读全文
posted @ 2020-09-23 13:15 Kingram 阅读(3851) 评论(0) 推荐(0) 编辑
摘要: Go语言中底层数组和切片的关系以及数组扩容规则 demo package main import ( "fmt" ) func main() { // 声明一个底层数组,长度为10,容量为10 arr := []int {0,1,2,3,4,5,6,7,8,9} fmt.Printf("[%T]le 阅读全文
posted @ 2020-09-08 07:54 Kingram 阅读(569) 评论(0) 推荐(0) 编辑
摘要: Golang超时机制--2秒内某个函数没被调用就认为超时 需求描述 当一整套流程需要其他程序来调用函数完成时通常需要一个超时机制,防止别人程序故障不调你函数导致你的程序流程卡死 实现demo package main import ( "fmt" "time" ) var timeoutchan c 阅读全文
posted @ 2020-09-04 10:30 Kingram 阅读(522) 评论(0) 推荐(0) 编辑
摘要: Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirr 阅读全文
posted @ 2020-08-12 14:30 Kingram 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用docker[container] start命令来启动它。 启动容器 docker [contai 阅读全文
posted @ 2020-08-11 16:04 Kingram 阅读(269) 评论(0) 推荐(0) 编辑