Go

缓存淘汰策略

淘汰策略 FIFO(First In First Out) 先进先出,也就是淘汰缓存中最老(最早添加)的记录,创建一个队列,新增记录添加到队尾,当内存不足时,淘汰队首; 但是很多场景下,部分记录虽然是最早添加的但也经常被访问...

任务调度demo

模拟任务调度 同步(串行)任务/异步(并行)任务 遇到同步任务需执行完成后再执行后续任务 package main import ( "context" "fmt" "sync" "time" ) f...

go格式化输出json

var prettyJSON bytes.Buffer err := json.Indent(&prettyJSON, body, "", "\t") if err != nil { log.Println("JSON parse error: ", err) return } fmt.Println(str...

go操作etcd

package main import ( "context" "crypto/tls" "crypto/x509" "fmt" "io/ioutil" "log" "time" &qu...

Go请求库requests

#requests #下载 go get -v github.com/Ropon/requests #初始化请求 request = requests.Requests() #构建header request.Headers = map[string]string{"key":val} #构建cookie request.Cookies = map&#...

Go中解析配置文件demo

package main import ( "fmt" "io/ioutil" "reflect" "strconv" "strings" ) // Config 日志文件结构体 type Config struct { Level string `conf:"level"` Filepath string `conf:"filepath"` Fil...

Go语言中反射(reflect)

package main import ( "fmt" "reflect" ) //go语言中变量分为两部分 // 类型信息:预先定义好元信息 // 值信息:程序运行过程中可动态变化 //reflect包 //reflect.TypeOf 获取任意值的类型对象(reflect.T...

Go语言中Channel

package main //通道 //通过通道共享内存(先入先出) //channel 是一种类型 是引用类型 空值nil //语法 //var 变量 chan 元素类型 //var ch1 chan int //var ch2 chan bool //需要通过make初始化 //make(cha...

Go语言中并发

package main import ( "fmt" "runtime" "sync" ) //goroutine 类似于线程 属于用户态的线程 //goroutine 由go语言运行时(runtime)调度完成 而线程由操作系统调度完成 //需要并发执行任务时 只需将这个...

Go语言中日志库demo

// logger.go package logger import "strings" //日志库 //Loglevelmap 定义日志级别map var Loglevelmap = map[string]int{ "debug": 0, "info": 1, "warn": 2, "error": 3, "fatal": 4, } //Logge...