前面说了GPM的main函数启动「47」GPM main启动,这次看下这个启动过程中如何创建第一个M和G的操作。

在main函数汇编的入口地方call这么几个函数:

  • args 参数设定
  • osinit os系统初始化
  • schedinit 调度初始化
阅读全文 »

SDS在redis中也算是用来存储string高效的做法,采用header+string的形式。

学完预期的目标:

  • SDS 结构类型
  • SDS 结构为何高效?
  • 创建?
  • 扩容?
  • 释放?
  • 复制?
  • Join连接?
  • Resize the allocation ??
  • 其它
阅读全文 »

前序:

AOF开启的配置:

1
2
3
appendonly yes
#appendonly no
appendfsync everysec

但是redis根据这配置到底是如何实现 AOF的呢?

阅读全文 »

前序:

  • 前段时间看了这么个问题,输出是what?:
1
2
3
4
5
6
7
8
9
10
11
package main

func main() {
println(fff(1))
}

func fff(x int) (_, __ int) {
_, __ = x, x
return
}

阅读全文 »