- 博客(7)
- 收藏
- 关注
原创 redis 内存管理
在说到redis的内存管理,先来聊下redis的一个命令是怎么执行的。例如 set test “hello word”redis 在内部形成了一个如下的结构dictEntry key 就是test 存储的结构是sds,下面会说到sds 是一个字符串的存储结构,value形成一个redisObject类型, 定义如下 struct redisObject { unsigned ...
2019-07-11 17:08:05 170
原创 kafka高吞吐原理
1 sendfile技术sendfile 也就是我们所说的零copy,区别传统的read/writer send/rev方式,有原来的4次数据copy降低为3次。零copy值的是用户态和内核态的数据copy.传统的方式数据copy方式1.内核从硬盘把数据读到内核缓存2.内核缓存到用户缓存3.用户缓存到内核scoket缓存区4.内核scoket缓存区到协议引擎sendfile技术将用户...
2019-07-08 17:28:03 164
原创 php 中的抽象类和接口的区别
今天和同事谈到了一个类的写法,提到了抽象类,突然有点懵逼,啥叫抽象类,干什么的,忘的一干二净。赶紧查了查资料看了看。抽象类抽象类也就是在php中用abstract来修饰的类。主要特性有以下几个方面1.抽象类不可以实例化,如果要使用抽象类的方法,需要继承或者用类似静态方法调用的方式调用 类名::方法名称2.抽象类的抽象方法也就是abstrcat来修饰的方法,在继承的过程中需要实现3.抽象类...
2019-05-24 09:48:26 150
原创 redis hashmap的实现
这几天研究go和php中map的实现,捎带着看了看redis中字典的实现redis 中也是采用拉链发来处理hash冲突,实现和老版本的php hashtable的实现方式差不多,链式分散式存储,但是多了个rehash(渐进式hash),来看下redis中每个结构的定义dict的定义 typedef struct dict { dictType *type; // 类型特定函数 ...
2019-05-21 21:37:05 2499
原创 php 新老hashtable的实现
老板hashtable的实现php中hashtable的大体结构上和别的语言没什么区别,有两部分构成hashtable和bucket 和链式存储。来看下hashtable的定义 typedef struct _hashtable { uint nTableSize; // 大小 uint nTableMask; // hashtable的掩码 大小nTableSi...
2019-05-21 15:00:37 372
原创 go map的实现
一直很好奇golan的map在运行过程中是以一个什么样的形式存在的。抽空研究了下golang的源码,做个笔记。map 的存在形式有两部分组成 hmap 和bucket 。hmap的结构如下 type hmap struct { count int // map的大小 flags unit8 // B unit8 // 用来计算map的bucket大小 ...
2019-05-16 10:18:39 268
原创 defer使用
defer使用defer使用defer使用上午碰到了这么一个问题 for 循环中使用deferi := 0defer fmt.Println("a", i)for ; i < 3; i++ { defer fmt.Println("b", i)}defer fmt.Println("c", i)i = 100defer fmt.Println("d", i...
2019-05-09 19:01:58 398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人