摘要:
TCP 在TCP/IP协议模型中, 传输层协议有TCP和UDP, 这里主要介绍下可靠传输TCP协议, 目前是传输层协议首选. 特点 面向数据流(字节流形式) 虚电路连接 有缓冲传输(提供push机制 ) 无结构数据流(无边界) 全双工 连接建立 socket接口使用 connect()时建立连接,
阅读全文
posted @ 2017-04-29 09:54
谭兄
阅读(498)
推荐(0)
编辑
摘要:
线程同步 多个线程共享相同的内存时, 需要确保每个线程看到的数据视图一致. 如果每个线程的数据在其他线程不会用到, 或者变量是只读的, 这样没有一致性问题. 但是如果多个线程需要共享变量时, 就需要进行线程同步了. 举个例子, 有线程A读取变量并加1, 可分为以下三步: 1.从内存读入变量到寄存器
阅读全文
posted @ 2017-04-28 17:25
谭兄
阅读(196)
推荐(0)
编辑
摘要:
哈希表 结构定义dict.h/dictht table是一个数组, 每个元素是一个指向dict.h/dictEntry 结构的指针. 哈希表节点 next属性指向下一个节点, 形成链表, 解决哈希冲突. 字典 type 和 privdata属性都是针对不同类型的键值对, 为创建多态字典设置. ht数
阅读全文
posted @ 2017-04-15 17:44
谭兄
阅读(472)
推荐(0)
编辑
摘要:
这篇文章讲的非常好 : http://blog.csdn.net/hairetz/article/details/4084088 用空间换时间, 规则 : 每个数据成员存储的起始位置都要是它的整数被或者它子成员的整数倍, 并且结构体总长度是它内部最大成员的整数倍, 不足补齐. 可以使用 #pragm
阅读全文
posted @ 2017-04-15 12:50
谭兄
阅读(138)
推荐(0)
编辑
摘要:
Redis实现为双链表结构, 列表键的底层实现之一就是链表, 发布与订阅, 慢查询, 监视器等功能都用到了链表. Redis本身也使用链表维持多个客户端. 节点定义, 位于 adlist.h/listNode 链表结构定义, 位于adlist.h/list Redis链表特性总结 :
阅读全文
posted @ 2017-04-14 23:34
谭兄
阅读(280)
推荐(0)
编辑
摘要:
1.定义 Redis没有使用C语言的字符串, C语言的字符串只会用在不需要对字符串修改而只使用其值地方. Redis使用SDS表示字符串, 结构定义 : SDS也是以'\0'表示结束, 这一个字节不会计入已使用的长度. 这样做的好处是可以重用C字符串函数库里面的一部分函数. 2.SSD和C字符串的区
阅读全文
posted @ 2017-04-10 12:08
谭兄
阅读(1241)
推荐(0)
编辑
摘要:
使用位运算, 利用几个性质 a ^ a = 0 a ^ 0 = a 再来一个
阅读全文
posted @ 2017-03-31 22:25
谭兄
阅读(405)
推荐(0)
编辑
摘要:
只有当函数被调用时, 其形参和局部变量才被分配了内存, 一旦调用结束, 其空间将被回收.根据这种特性, 把局部变量称为自动变量. 定义形式 : auto int x, y; 在定义时, auto一般省略. 静态变量赋初始值只有在函数第一次调用时起作用, 若没有赋初始值,系统自动赋0.
阅读全文
posted @ 2017-03-31 17:53
谭兄
阅读(720)
推荐(0)
编辑
摘要:
单例模式 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例 关键字 : 三私一公 桥接模式 将抽象部分与具体实现相分离 <?php class Info{ public $lev; //发送等级:普通,重要,特级 public $target;//通过什么方式发送 //实际发送
阅读全文
posted @ 2017-03-31 11:38
谭兄
阅读(137)
推荐(0)
编辑
摘要:
OOP的好处 1.封装, 2继承, 3多态. 多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。 <?php // 定义了一个形状的接口,里面有两个抽象方法让子类去实现 interface Shape { fu
阅读全文
posted @ 2017-03-31 09:49
谭兄
阅读(504)
推荐(0)
编辑