- 博客(5)
- 收藏
- 关注
原创 nginx----hash
hash也是一种数据结构,相比于list、queue等要复杂一些。在利用hash表存储数据时,都是通过key-value的形式,通过对key进行hash得到一个key-hash值,然后利用该值找到数据应该在hash表中存放的位置,再插入数据。1、基本数据结构实现hash表涉及的主要数据结构如下:typedef struct { //hash表 ngx_hash_elt_t
2015-07-14 16:43:30 848
原创 nginx----queue
1、数据结构nginx中queue的数据结构非常简单,其中并不包含任何实际数据相关的结构,只有两个指针用于找到前后的元素。struct ngx_queue_s { ngx_queue_t *prev; ngx_queue_t *next;};2、基本操作queue的操作也几乎都是通过宏定义来实现的,队列包含的具体操作如下:#define ngx_queue
2015-07-13 16:03:09 666
原创 nginx----list
nginx中的list也是一个链表,但与我们之前遇到的list却不太一样。一般的list中的每一个节点都表示链表中的一个元素,但是nginx中list的每一个节点都是一个数组,其中可以存储固定大小的元素,每次存储空间不够时,都是分配一个固定大小的数组的,而不再是只分配一个元素的空间。1、数据结构链表中每一个节点的数据结构如下:struct ngx_list_part_s { v
2015-07-13 10:47:29 466
原创 nginx----ngx_buf
在ngx_buf.h文件中,定义了ngx_chain_t和ngx_buf_t两个结构体。其中chain起到一个链的作用,将待发送的数据包串联起来,而buf则是chain中的每一个节点。ngx_buf_t的数据结构如下:struct ngx_buf_s { u_char *pos; u_char *last; off_t
2015-07-10 15:46:48 695
原创 nginx----array
1、array的结构体ngx_array_t是nginx中定义的数组结构,用于存储数据,其结构体定义如下:typedef struct { void *elts; //指向分配给数据存储空间的内存起始地址 ngx_uint_t nelts; //当前数组中存储的元素的个数 size_t size; //每个元素的大小
2015-07-09 21:25:13 551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人