难点:哈希表结构,还需要继续深入。
Nginx的哈希结构,源自Nginx源码分析 - 基础数据结构篇 - hash表结构 ngx_hash.c(07)_自娱自乐的代码人-CSDN博客
Nginx的hash模块包含了对内存利用最大化、CPU利用最大化的很多设计细节
首先几个特性,静态只读,内存利用最大化,查询快。
哈希元素结构:
typedef struct {
void *value; /* 指向value的指针 */
u_short len; /* key的长度 */
u_char name[1]; /* 指向key的第一个地址,key长度为变长(设计上的亮点)*/
} ngx_hash_elt_t;
哈希表结构
typedef struct {
ngx_hash_elt_t **buckets; /* hash表的桶指针地址值 */
ngx_uint_t size; /* hash表的桶的个数*/
} ngx_hash_t;