Linux 文件系统相关概念

基础概念 操作系统操作文件无非主要就是(通过 cpu、DMA): 从磁盘 load 数据到内存 从内存写入数据到磁盘 DMA(Direct Memory Access) 意为直

Go Sort 使用

排序 slice、map 等 一般排序使用 sort 包,下面以 int 型举例。 排序 int slice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 func sortSlice() { fmt.Println("----- 一维正序排序 -----") nums := []int{9, 8, 0,

go for-range 问题

先开宗明义吧,for-range 是个语法糖,内部还是以 for 循环 实现: 1 2 3 4 5 6 7 8 for_temp := range len_temp := len(for_temp) for index_temp = 0; index_temp < len_temp; index_temp++ { value_temp = for_temp[index_temp] index = index_temp value = value_temp original body } 这里

Mysql 细节

MySql 架构 大体来说,MySQL 可以分为 Server 层和存储引擎层两大部分。 Server 层 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功

进程与 IO

对于这么互联网从业者来说,IO 特别是 网络 IO从来都是大问题,尤其是在当前大行其道的 微服务 体系下,大厂可能有上万个微服务,某个接口可能有数十个

TCP 名词解释

TTL ip 首部 有个 8bits 的域 TTL ,本意为 time to live(单位秒),具体实现时,用来表示一个 ip 数据报可以经过的最大路由数,所以 IPv6 直接重命名为了 hop limit,

tcpdump

1 2 3 sudo tcpdump -l -vv -nn -X -s 0 -i lo0 tcp port 6379 > redis2.log & tail -f redis.log netstat -anl | grep -i 6379 | grep -i tcp4 | grep -iv 'LISTEN' 其中: -l:对标准输出进行行缓冲,也即使标准输出设备遇到一个换行符就

TCP 连接的建立与关闭

tcp(Transmission Control Protocol) 是一种位于传输层、面向字节流、保证可靠传输的全双工协议,作为底层协议,支撑着着应用层如 h

Bit Twiddling Hacks

算法里面有很多 位操作,看 redis 源码,看到 src/dict.c 下一个函数: 1 2 3 4 5 6 7 8 9 10 11 /* Function to reverse bits. Algorithm from: * http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel */ static unsigned long rev(unsigned long v) { unsigned long s = CHAR_BIT * sizeof(v); // bit size; must be power of 2 unsigned long