Loading

摘要: 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 UNIX/Linux/Mac OS X, 和 FreeBSD 安装 1、下载golang相应版本二进制包 2、将下载的二进制包解压至 /usr/l 阅读全文
posted @ 2021-06-07 10:00 Allfuture 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 新建一个MODULE 1、go mod init project-name 2、git push git-url 3、git tag 版本 4、本地使用获取 go get git-url 版本号 引入本地包 本地包,只需要替换路径即可 私有库,非正常引用 1、配置 ssh 下载访问私有库 2、配置 阅读全文
posted @ 2021-04-12 17:13 Allfuture 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 要修改字符串,需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。 func changeString() { s1 := "big" // 强制类型转换 byteS1 := []byte(s1) byteS1[0] = 'p' f 阅读全文
posted @ 2020-11-14 05:57 Allfuture 阅读(245) 评论(0) 推荐(0) 编辑
摘要: package main import "fmt" func main() { fmt.Println("f1 result: ", f1()) fmt.Println("f2 result: ", f2()) } func f1() int { var i int defer func() { i 阅读全文
posted @ 2020-08-12 15:13 Allfuture 阅读(245) 评论(0) 推荐(0) 编辑
摘要: Redis 的持久化策略有两种: RDB:快照形式是直接把内存中的数据保存到一个 dump 的文件中,定时保存,保存策略。 RDB是Redis的一个快照文件,比如说现在的时间是下午14:00,Redis做了一次快照的备份,把这个数据备份到了RDB,那么这个RDB文件的数据就只停留在下午两点,下午两点 阅读全文
posted @ 2020-08-12 10:39 Allfuture 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 缓存击穿不同的是缓存击穿是指一个 Key 非常热点,在不停地扛着大量的请求,大并发集中对这一个点进行访问, 当这个 Key 在失效的瞬间,持续的大并发直接落到了数据库上,就在这个 Key 的点上击穿了缓存.。 解决办法: 缓存击穿的话,设置热点数据永不过期,或者加上互斥锁 使用互斥锁(mutex k 阅读全文
posted @ 2020-08-12 10:26 Allfuture 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 缓存穿透是指查询一个一不存在的数据。 例如:从缓存redis没有命中,需要从mysql数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决思路: 如果查询数据库也为空,直接设置一个默认值存放到缓存,这样第二次到缓冲中获取就有值了,而不会继续访问 阅读全文
posted @ 2020-08-12 10:22 Allfuture 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一:Redis 雪崩 数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。 比如一个雪崩的简单过程: 1、redis集群大面积故障 2、缓存失效,但依然大量请求访问缓存服务redis 3、redis大量失效后,大量请求转向到mys 阅读全文
posted @ 2020-08-12 10:18 Allfuture 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 类型 T 方法集包含全部 receiver T 方法。 类型 *T 方法集包含全部 receiver T + *T 方法。 如类型 S 包含匿名字段 T,则 S 和 *S 方法集包含 T 方法。 如类型 S 包含匿名字段 *T,则 S 和 *S 方法集包含 T + *T 方法。 不管嵌入 T 或 * 阅读全文
posted @ 2020-08-03 13:22 Allfuture 阅读(124) 评论(0) 推荐(0) 编辑
摘要: package main import ( "log" "time" ) type student struct { Name string Age int } func main() { m := make([]*student, 3) stus := []student{ student{Nam 阅读全文
posted @ 2020-08-02 10:59 Allfuture 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 删除某个字段: ALTER TABLE `tableName` drop COLUMN `columeName`; 增加某个字段: ALTER TABLE `tableName` ADD COLUMN `columeName` varchar(255) NOT NULL DEFAULT '' COM 阅读全文
posted @ 2020-07-28 09:52 Allfuture 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 思路一: 如果我们把众数记为 +1,遇到相同数就加1,遇到不同的数就减1,把其他数记为 -1,将它们全部加起来,显然和大于 0,从结果本身我们可以看出众数比其他数多。 使用for循环取值几个数也许就查找到了。 方法二:哈希表使用hashtab 实现计数也行。 我们使用哈希映射(HashMap)来存储 阅读全文
posted @ 2020-07-26 13:15 Allfuture 阅读(726) 评论(0) 推荐(0) 编辑
摘要: 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 按位异或的3个特点: (1) 0^0=0,0^1=1 0异或任何数=任何数 (2) 1^0=1,1^1=0 1异或任何数-任何数取反 (3) 任何数异或自己=把自己置0 如果是一个偶数^1,那么答案是偶数+1.如果是一个奇 阅读全文
posted @ 2020-07-26 12:49 Allfuture 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 第一步: go get github.com/astaxie/beego 报错:unrecognized import path "google.golang.org/protobuf...... mkdir -p 创建google.golang.org及子目录。 git clone https:/ 阅读全文
posted @ 2020-07-13 09:36 Allfuture 阅读(217) 评论(0) 推荐(0) 编辑
摘要: golang struct函数的参数设置: 实例一:形参和类型都为指针类型 type user struct { Name string Age int}func (u *user) setUser(a *user) { a.Name = "fwefew" fmt.Printf("func => 形 阅读全文
posted @ 2020-07-07 11:21 Allfuture 阅读(583) 评论(0) 推荐(0) 编辑
摘要: golang中的reflect(反射) 阅读全文
posted @ 2020-07-07 10:11 Allfuture 阅读(68) 评论(0) 推荐(0) 编辑