随笔分类 -  golang

摘要:代码如下: // Decimal float64 保留小数点后位数 // value float64 浮点数 // prec int 需保留小数点后的位数 func Decimal(value float64,prec int) float64 { value, _ = strconv.ParseF 阅读全文
posted @ 2023-08-08 09:45 孤独信徒 阅读(856) 评论(0) 推荐(0)
摘要:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% import (% "redigo/redis"% ) % const (% SET_IF_NOT_EXIST = "NX" // 不存在则执行% SET_WITH_EXPIRE_TIME = "EX" 阅读全文
posted @ 2021-09-09 17:28 孤独信徒 阅读(98) 评论(0) 推荐(0)
摘要:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] 阅读全文
posted @ 2020-07-15 01:00 孤独信徒 阅读(113) 评论(0) 推荐(0)
摘要:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3, 阅读全文
posted @ 2020-07-15 00:49 孤独信徒 阅读(100) 评论(0) 推荐(0)
摘要:Golang控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context。 WaitGroup 方式: var wg sync.WaitGroupfunc fun1(i chan int) { time.Sleep(2 * time.Second) fmt.Println(<-i) 阅读全文
posted @ 2020-06-10 08:53 孤独信徒 阅读(2377) 评论(0) 推荐(0)
摘要:在实际生产环境下,某场景下,数以千万乃至上亿的数据会批量落入db,nosql,而根据数据的ttl过期,会在某个多久之后的时间给这批数据del. 加入每天9点都在批量insert—all,而前n天的数据恰好在这个时间节点(n天后的9点)ttl过期,观察db的io负载,会急速飚上去,io打的很高,甚至到 阅读全文
posted @ 2020-01-16 17:08 孤独信徒 阅读(3044) 评论(0) 推荐(1)
摘要:go的序列化和反序列化的原生和插件比较多,这里使用一个 json-iterator 示例如下: 相关地址: https://github.com/json-iterator/go 官方benchmark 测试如下: 自测对比顺序 1、1000个时间消耗 2、10000个时间消耗 3、100000个时 阅读全文
posted @ 2020-01-15 20:15 孤独信徒 阅读(6171) 评论(0) 推荐(0)
摘要:一:openfalcon组件 1.falcon-agent 数据采集组件 agent内置了一个http接口,会自动采集预先定义的各种采集项,每隔60秒,push到transfer。 2.transfer agent与transfer建立长连接,将数据汇报给tarnsfer transfer默认监听在 阅读全文
posted @ 2019-12-20 17:08 孤独信徒 阅读(470) 评论(0) 推荐(0)
摘要:之前聊过,操作文件——读写文件,直接调用接口即可. 如果是一直写入操作,写入操作一直进行的,免不了会有,有时一大批数据过来,有时没有一条数据。 鉴于此场景,选择用select....channel 的模型处理。 代码如下: 可根据 超时时间和接收数据的数量,两个维度处理。没有数据在channel接收 阅读全文
posted @ 2019-12-17 13:52 孤独信徒 阅读(875) 评论(0) 推荐(0)
摘要:reverse反转,是个比较基础算法。要实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个方式的算法复杂度是O(n),并且还需要重新申请空间。 然而通过对字符串前后对调实现的,方法非常优雅,复杂度一下就降到了O(n/2)。用go 阅读全文
posted @ 2019-12-17 00:45 孤独信徒 阅读(7612) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2019-12-17 00:29 孤独信徒 阅读(9) 评论(0) 推荐(0)
摘要:压测1w条记录,append追加写文件的耗费时间. 阅读全文
posted @ 2019-11-28 10:18 孤独信徒 阅读(426) 评论(0) 推荐(0)
摘要:直接上例子: 例子1: 根据value,把Value相同的放在一起,结果放在一个大map里. 执行结果如下: > tmpRs.........=map[11:[alice] 29:[bob zhangsan] 35:[wang]] 例子2: 把结果放在一个复合map中. 执行结果如下: > {0 2 阅读全文
posted @ 2019-11-04 14:25 孤独信徒 阅读(3429) 评论(0) 推荐(0)
摘要:当时候需要去计算一段代码或一个程序所消耗时间的时候,就需要进行统计时间,用程序去计算某一段代码的执行所需要的时间远比用眼睛直接去看程序运行时间高很多。 go语言中的time包中提供了函数来提供计算消耗时间,具体的使用方式如下案例所示: bT := time.Now() // 开始时间 eT := t 阅读全文
posted @ 2019-10-29 09:57 孤独信徒 阅读(7349) 评论(0) 推荐(0)
摘要:直接使用reflect的TypeOf方法就可以了 模块是: "reflect" 阅读全文
posted @ 2019-08-02 16:52 孤独信徒 阅读(16358) 评论(0) 推荐(0)
摘要:实际生产中,对不同数组取交集、并集、差集等场景很常用,下面来说下两个数组取差集 直接上代码: 即获得到两个slice的并集。 阅读全文
posted @ 2019-07-17 15:05 孤独信徒 阅读(3649) 评论(0) 推荐(0)
摘要:sync.Map这个数据结构是线程安全的(基本类型Map结构体在并发读写时会panic严重错误),它填补了Map线程不安全的缺陷,不过最好只在需要的情况下使用。它一般用于并发模型中对同一类map结构体的读写,或其他适用于sync.Map的情况。 关于sync.Map的源码解析文章:Go 1.9 sy 阅读全文
posted @ 2019-04-25 20:01 孤独信徒 阅读(2735) 评论(0) 推荐(0)
摘要:解析xml标签或者html标签,都是xml文档格式。要是返回的html标签,可以用第三方依赖库goquery来解析。 下面说下,解析xml标签的格式。直接上代码,代码如下: 举例:xml 格式如下:文件名,servers.xml 在代码里,先针对xml的格式,创建对应的struct结构体, 执行结果 阅读全文
posted @ 2019-04-17 11:15 孤独信徒 阅读(11324) 评论(0) 推荐(0)
摘要:场景: IP是个Key,string字符串是个值, 一个IP可以对应多个字符串。 代码如下: 运行结果如下: 阅读全文
posted @ 2019-03-20 13:55 孤独信徒 阅读(13067) 评论(0) 推荐(0)
摘要:使用了goroutine实现了多线程,使用chan来控制多线程。 runtime.GOMAXPROCS(3)来设置最大的原生线程。 runtime.Gosched() 显式地让出CPU时间给其他goroutine 代码如下: 1 package main 2 3 import ( 4 "fmt" 5 阅读全文
posted @ 2019-01-21 16:55 孤独信徒 阅读(8451) 评论(5) 推荐(0)