Nginx 中有一个模块:geo,它可以针对不同的 IP 地址来定义不同的变量值,其中就用到了 radix tree 和 red-black tree。

Radix Tree
实质就是 trie 数组的一种变体,但是不同的是其中的边不像 trie 那样只存放一个字符,而是可以存放多个字符。这很有利于路径的压缩,可以有效减小树的深度。radix tree 已经被应用在 bsd 的路由查找和 linux 内核之中。

算法实现
维基百科上的文章很清楚描述了 radix tree 大致是怎么一回事。

复杂度