- 博客(11)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 Go 语言编码规范
uber-go/guide 的中文翻Uber Go 语言编码规范Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap、jaeger 等。2018 年年末 Uber 将内部的 Go 风格规范 开源到 GitHub,经过一年的积累和更新,该规范已经初具规模,并受到广大 Gopher 的关注。本文是该规范的中文版本。本版本会根据原版实时更新。版本当前更新版本:2021-04-23 版本地址:commit:#1
2021-06-22 16:15:20 303
原创 go channel小技巧
func main(){ ch := make(chan int,1000) go func() { for i :=0;i<1000;i++{ ch <- i } // 关闭channel close(ch) }() // 使用range来处理channel里面的数据 // 当channel关闭时,range方式会将里面剩余的数据全部读取完成,在退出 for x := range ch{ fmt.Println(x) }}...
2021-06-22 16:08:33 116
原创 Redis排行榜实现
需求(排行榜实现):根据分值排序,需要知道自己具体的排名 如(自己排名:4000),数据可能会达到千万,使用Redis实现首先想到使用Zset来实现,Zset基于score的排序skiplist(跳表)作为zset的底层存储结构的时候,使用skiplist按序保存元素及分值,使用dict来保存元素和分值的映射关系方案:1.直接使用相关命令将数据写入到zset结构中(key:rank.score,value:…),后直接使用zrank获取排名2 . 大致计算1000w条数据占用内存大小,如:一个me
2020-05-10 17:19:23 1252
原创 redis缓存四大问题
设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。穿透描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。由于缓存是不命中时被动写的,并且出于容错 考虑,如果从存储层查不到数据则不写...
2020-04-03 23:54:49 389
原创 Go 值传递OR引用传递
什么是传值(值传递)传值的意思是:函数传递的总是原来这个东西的一个副本,一副拷贝。比如我们传递一个int类型的参数,传递的其实是这个参数的一个副本;传递一个指针类型的参数,其实传递的是这个该指针的一份拷贝,而不是这个指针指向的值。对于int这类基础类型我们可以很好的理解,它们就是一个拷贝,但是指针呢?我们觉得可以通过它修改原来的值,怎么会是一个拷贝呢?下面我们看个例子。func ma...
2020-03-28 22:33:08 420
原创 Go学习(备忘录)
array和slice在Go中,数组是值。 将一个数组赋予另一个数组会复制其所有元素。若将某个数组传入某个函数,它将接收到该数组的一份副本而非指针。 数组的大小是其类型的一部分。类型 [10]int 和 [20]int 是不同的。 数组是固定分配,不可更改.在详细规划内存布局时,数组是非常有用的,有时还能避免过多的内存分配, 但它们主要用作切片的构件。 切片保存了对底层数组的引用,若你将某个切片...
2020-03-26 20:43:13 110
原创 ElasticSearch备忘录
使用QueryBuilder * termQuery("key", obj) 完全匹配 * termsQuery("key", obj1, obj2..) 一次匹配多个值 * matchQuery("key", Obj) 单个匹配, field不支持通配符, 前缀具高级特性 * multiMatchQuery("text", "field1", "field2"..); 匹...
2019-12-02 11:48:14 224
原创 eclipse-github使用一
以前一直使用svn来管理代码,现在公司新的代码使用github,学习记录下来,防止以后忘记1.查看你的eclipse中有没有安装github插件【EGit】,通过Help-About Eclipse IDE如果没有没有安装可以eclipse市场中去搜索并安装【Help-Eclipse Marketplace】3.设置github用户的信息【Windows-Preferences...
2019-02-22 17:15:50 171
原创 scrapyd安装
ubuntu python3.5上安装scrapyd老是出错问题 1.出现 No module named _sqlite3 安装 sudo apt-get install libsqlite3-dev sudo apt-get install sqlite3 然后进入python3.5安装目录重新编译 安装python[./configure make ma...
2018-04-12 10:11:59 262
fkjdsklfjdslkfjdslkfjdslkfjdslkfjd
2008-11-21
java与c++通信
2009-12-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人