Redis(5.0.3)事件驱动与连接管理
Redis(5.0.3)定时任务serverCron
redis里很多非响应命令的功能,例如持久化、内存淘汰、复制、cluster等等,是需要设置一个定时任务来完成的。并且这里部分的定时任务的执与响应命令的执行是混在一个线程中。意味着定时任务执行过慢会影响redis的性能。
Redis(5.0.3)里一个简单请求如何被处理
set text “hello world” 从进入服务器到输出结果,整个流程是怎样的?带着这个问题来看看源码。
Redis(5.0.3)源码分析之sds对象
sds是redis中定义字符串对象,它比C中的字符串类型对象更为高效、安全。
fasthttp源码&最佳实践分析
fasthttp号称比net/http快十倍,并且更少的内存分配。性能测试可以自行执行go test -bench。
同时fasthttp也给出自己的最佳实践。个人理解这些实践也算是gopher的基本功。
让我们来看看fasthttp在源码中是如何应用这些最佳实践的。
探索golang程序启动过程
go version == 1.9.3
GOARCH=“amd64”
GOOS=“darwin”
本文探索下go程序是如何启动起来的。
探索goroutine的创建
go 1.9.3
GOARCH=“amd64” GOOS=“darwin”
本文使用delve进行调试
创建一个goroutine
一个go语法就很容易地创建出一个goroutine了。(本文也基于这个程序进行分析)
探索goroutine的销毁
go version = 1.9.3
GOARCH=“amd64” GOOS=“darwin”
本文使用delve进行调试
goroutine实际不会被销毁,而是结束后放在free goroutine里等待被再次使用