
go基础知识笔记
遥不可及梦
这个作者很懒,什么都没留下…
展开
-
缓存击穿策略singleFlight
简介缓存击穿:缓存失效时,有大量并发请求过来。大量请求从缓存上拿不到数据,请求压力全部打到数据库上。场景1:活动结束前。为了完成活动任务,请求活动配置数据请求一般会有爆发性增长。当你的服务没有做防止缓存击穿的话,就有可能让你的数据库宕机singleFlight包singleFlight会将对同一个key的所有请求,变成一个请求,所有请求共享一个请求返回的数据。场景:活动尾声大量并发请求获取活动配置数据。设置该活动key为activity_key,所有请求都会开个goroutine处理。所有请求都通原创 2020-09-16 16:17:26 · 621 阅读 · 0 评论 -
go-redis库使用笔记
安装go get -u github.com/go-redis/redis连接普通连接func NewClient() (c *redis.Client, err error) { c = redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB: 0, }) _, err = c.Ping().Result() if err != nil { retur原创 2020-05-14 12:10:43 · 878 阅读 · 0 评论 -
Go编译器原理笔记
阶段前端(frontend):对源码进行分析,生成AST源代码语法结构物。后端(backend):将源代码转换为机器码,并进行优化。1. parsing2. AST transformation3. SSA generation4. machine code generationexample go1.14.0package mainfunc main() { a := 1 b := 2 if true { add(a, b) }}原创 2020-05-12 11:32:14 · 388 阅读 · 0 评论 -
golang context笔记
contexttype Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{}}Deadline:返回的第一个值是 截止时间,到了这个时间点,Co...原创 2020-05-08 15:17:02 · 246 阅读 · 0 评论