gin 学习
gin 介绍
Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。
在本节中,我们将介绍 Gin 是什么,它解决了哪些问题,以及它如何帮助你的项目。
Radix 树
Radix 树设计思想来自于 DonaldR.Morrison 于 1968 年提出的 Patricia 树(Practical Algorithm To Retrieve Information Coded In Alphanumeric),这是一种基于二进制表示的键值的查找树,尤其适合处理非常长的、可变长度的键值。 Patricia 的基本思想是构建一个二叉树,在每个节点中都存储有在进行下一次 bit 测试之前需要跳过的 bit 数目,以此来避免单路分支。Patricia 树一般由内部节点和外部节点组成,内部节点指示需要进行 bit 测试的位置,并根据 bit 测试结果决定查找操作前进的方向;外部节点用于存储键值,查找操作将于外部节点处终结。
- Patricia 查找,终结于某个叶子节点,判断该叶子节点是否与查找键相同
- 如果找到的叶子节点无法与查找键匹配,则在这个叶子节点的重复键链表中寻找网络匹配的可能。
- 如果找到的叶子节点及其重复键与查找键不满足网络匹配条件,则向树顶回溯,继续寻找网络匹配的可能