go-源码研读-sync
sync包内主要是一些锁,信号量之类的东西
条件变量 Cond123456789101112131415161718192021222324type Cond struct { no ...
go-源码研读-map
代码版本:1.12.7
主要代码在src/runtime/map.go
结构图
常量定义每个bucket持有kv键值对数目1234// Maximum number of key/value pai ...
go-源码研读-slice
代码版本:1.12.7
主要代码在src/runtime/slice.go
类型定义其实slice底层就是一个指向数组的指针,加上两个大小值
123456789101112type slice st ...
go-源码研读-string
代码版本:1.12.7
Go中string并不像C一样只是个单纯的指针指向一片空间,而是在底层封装了一层结构体来存储。字符串构建过程是先跟据字符串构建stringStruct,再转换成string。
...
go-源码研读-interface
代码版本:1.12.7
interface是Go语言里面的接口,可以理解为一种方法声明的集合约定,整个ducktyping就是通过这个完成的。
任何类型实现了在interface 接口中声明的全部方 ...
go-源码研读-channel
代码版本:1.12.7
channel是Go语言里面用来传递数据的一个接口
主要代码在src/runtime/chan.go
常量定义12345const ( maxAlign = 8 //偏移量 ...
mysql-innodb索引与查询优化
一、 引言概要
(1) innodb索引类型与B+树
(2) 索引使用注意事项
问题
(1) InnoDb索引为什么要用b+树?
(2) 聚集索引与普通索引有什么区别?
(3) 为什么主键最 ...
redis-源码学习-zset
基础的zset相关的命令,t_zset.c
zadd——zaddCommand示例:ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN
被成功添加的新成员的数量 ...
redis-源码学习-set
基础的set相关的命令,t_set.c
sadd——saddCommand示例:SADD KEY_NAME VALUE1..VALUEN
被添加到集合中的新元素的数量,不包括被忽略的元素。
12 ...
redis-源码学习-hash
基础的hash相关的命令,t_hash.c
hset——hsetCommand示例:HSET KEY_NAME FIELD VALUE
如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 ...