收藏
0有用+1
0

Radix树

计算机科学领域术语
引言:众所周知,NoSQL,Memcached等作为Key—Value 存储的模型的数据路由都采用Hash表来达到目的。如何解决Hash冲突和Hash表大小的设计是一个很头疼的问题。
借助于Radix树,我们同样可以达到对于uint32_t 的数据类型的路由。这个灵感就来自于Linux内核的IP路由表的设计。
中文名
Radix树
外文名
Practical Algorithm To Retrieve Information Coded In Alphanumeric

简介

播报
编辑
Ra户樱少d拔欠阀拘击阀催ix树设计思想来自于DonaldR.Morrison于1968年提出的Patricia树(Practical Algorithm To Re拔辩trieve Information Coded In Alphanumeric),这是一种基于二进制表脚照恋示的键值的查找树,尤其适合处理非常长的巴仔罪、可变长度的键值。
Patricia霉键的基本思想是构建一个二叉树,在每个节点中都存储有在进行下一次bit测试之前需要跳过的bit数目,以此来避免单路分支。Patricia树一般由内部节点和外部节点组成,内部节点指示需要进行bit测试的位置,并根据bit测试结果决定查找操作前进的方向;外部节点用于存储键值,查找操作将于外部节点处终结。
BSD路由表使用的是Radix树探旬汽。

操作步骤

播报
编辑
BSD的中的路由查找操作分为3步:
第一步:Patricia查找,终结于某个叶子节点,判断该叶子节点是否与查找键相同。
第二步:如果找到的叶子节点无法与查找键匹配,则在这个叶子节点的重复键链表中寻找网络匹配的可能。
第三步:如果找到的叶子节点及其重复键与查找键不满足网络匹配条件,则向树顶回溯,继续寻找网络匹配的可能。 [1]