只有注册用户登录后才能阅读该文。 阅读全文
摘要:
删除旧master或者不可达slave sentinel永远会记录好一个Master的slaves,即使slave已经与组织失联好久了。这是很有用的,因为sentinel集群必须有能力把一个恢复可用的slave进行重新配置。 并且,failover后,失效的master将会被标记为新master的一 阅读全文
摘要:
前序:由于公司业务需求,对于3个月前的过期数据需要进行删除动作,以释放空间和方便维护本来想的是使用crontab写个脚本定时执行,但是看到Mongo本身就有自动删除过期数据的功能,所以还是用一下吧这个方法就是使用TTL索引,后续我再写一个脚本定时删除的任务介绍:TTL索引是MongoDB中一种特殊的 阅读全文
摘要:
压测1w条记录,append追加写文件的耗费时间. 阅读全文
摘要:
直接上例子: 例子1: 根据value,把Value相同的放在一起,结果放在一个大map里. 执行结果如下: > tmpRs.........=map[11:[alice] 29:[bob zhangsan] 35:[wang]] 例子2: 把结果放在一个复合map中. 执行结果如下: > {0 2 阅读全文
摘要:
当时候需要去计算一段代码或一个程序所消耗时间的时候,就需要进行统计时间,用程序去计算某一段代码的执行所需要的时间远比用眼睛直接去看程序运行时间高很多。 go语言中的time包中提供了函数来提供计算消耗时间,具体的使用方式如下案例所示: bT := time.Now() // 开始时间 eT := t 阅读全文
摘要:
直接使用reflect的TypeOf方法就可以了 模块是: "reflect" 阅读全文
摘要:
实际生产中,对不同数组取交集、并集、差集等场景很常用,下面来说下两个数组取差集 直接上代码: 即获得到两个slice的并集。 阅读全文
摘要:
实际生产场景中,有可能迁移机房或者更换物理机等因素,redis数据会在生产环境迁移。 遇到这种情况应该如何处理,下面就谈谈: redis客户端连接命令,分别连接旧环境中的主从redis Src目录下./redis-cli -h IP -p PORT 使用info replication 命令找出主r 阅读全文
摘要:
解析json,在很多语言都是很常用的,go提供了相应的包"encoding/json"来处理。直接上代码,如下: 运行结果如下: 阅读全文
摘要:
sync.Map这个数据结构是线程安全的(基本类型Map结构体在并发读写时会panic严重错误),它填补了Map线程不安全的缺陷,不过最好只在需要的情况下使用。它一般用于并发模型中对同一类map结构体的读写,或其他适用于sync.Map的情况。 关于sync.Map的源码解析文章:Go 1.9 sy 阅读全文
摘要:
解析xml标签或者html标签,都是xml文档格式。要是返回的html标签,可以用第三方依赖库goquery来解析。 下面说下,解析xml标签的格式。直接上代码,代码如下: 举例:xml 格式如下:文件名,servers.xml 在代码里,先针对xml的格式,创建对应的struct结构体, 执行结果 阅读全文
摘要:
场景: IP是个Key,string字符串是个值, 一个IP可以对应多个字符串。 代码如下: 运行结果如下: 阅读全文
摘要:
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数, 这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量 阅读全文
摘要:
使用了goroutine实现了多线程,使用chan来控制多线程。 runtime.GOMAXPROCS(3)来设置最大的原生线程。 runtime.Gosched() 显式地让出CPU时间给其他goroutine 代码如下: 1 package main 2 3 import ( 4 "fmt" 5 阅读全文