Redis跳跃表 API

x33g5p2x  于2021-03-14 发布在 Redis  
字(0.6k)|赞(0)|评价(0)|浏览(318)

表 5-1 列出了跳跃表的所有操作 API 。

函数作用时间复杂度
zslCreate创建一个新的跳跃表。O(1)
zslFree释放给定跳跃表,以及表中包含的所有节点。O(N) , N 为跳跃表的长度。
zslInsert将包含给定成员和分值的新节点添加到跳跃表中。平均 O(\log N) ,最坏 O(N) , N 为跳跃表长度。
zslDelete删除跳跃表中包含给定成员和分值的节点。平均 O(\log N) ,最坏 O(N) , N 为跳跃表长度。
zslGetRank返回包含给定成员和分值的节点在跳跃表中的排位。平均 O(\log N) ,最坏 O(N) , N 为跳跃表长度。
zslGetElementByRank返回跳跃表在给定排位上的节点。平均 O(\log N) ,最坏 O(N) , N 为跳跃表长度。
zslIsInRange给定一个分值范围(range), 比如 0 到 15 , 20 到 28,诸如此类, 如果给定的分值范围包含在跳跃表的分值范围之内, 那么返回 1 ,否则返回 0 。通过跳跃表的表头节点和表尾节点, 这个检测可以用 O(1) 复杂度完成。
zslFirstInRange给定一个分值范围, 返回跳跃表中第一个符合这个范围的节点。平均 O(\log N) ,最坏 O(N) 。 N 为跳跃表长度。
zslLastInRange给定一个分值范围, 返回跳跃表中最后一个符合这个范围的节点。平均 O(\log N) ,最坏 O(N) 。 N 为跳跃表长度。
zslDeleteRangeByScore给定一个分值范围, 删除跳跃表中所有在这个范围之内的节点。O(N) , N 为被删除节点数量。
zslDeleteRangeByRank给定一个排位范围, 删除跳跃表中所有在这个范围之内的节点。O(N) , N 为被删除节点数量。

|

相关文章

微信公众号

最新文章

更多