14 散列表
散列表原理
1. 特性
散列表是数组的一种扩展,利用的是数组支持按照下标随机访问的特性,其由三个核心部分组成:
- key: 元素的键
- hash func: 散列函数,将键隐射为底层数组的下标
- table: 底层的数组

散列表原理
散列表是数组的一种扩展,利用的是数组支持按照下标随机访问的特性,其由三个核心部分组成:

varnish 后端主机配置

在讲解完 varnish 的缓存配置之后,我们来看看如何配置后端服务器,包括后端服务器组的定义,调度算法,以及健康状态检测。
跳表: 链表上的“二分查找”
跳表是一种动态数据结构,支持快速的插入、删除、查找操作,时间复杂度都是 O(logn)。实现上跳表使用空间换时间的思想,通过构建多级索引来提高查询的效率,实现了基于链表的“二分查找”。
varnish缓存策略配置

前面我们讲解了 VCL 的语法,并通过示例讲解了一部分 varnish 缓存的配置。本节我们来看看 varnish 内置的缓存策略,然后着重来看看如何对缓存进行修剪。
无处不在的映射
前面我们讲解了基于数组和链表最基础的数据结构。在继续下面的内容之前,我们先来说一说映射。因为映射与我们接下来的很多数据结构与算法相关。映射可以看作是搜索或查找的扩展,后面介绍的很多数据结构都是为实现快速的增删改查。因此在继续其他数据结构的介绍之前,我想先介绍一下映射的抽象数据类型以及它的常见几种实现方式。
不简单的简单二分查找
二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。