当前位置: 首页 > 网络应用技术

REDIS基础数据结构P6 -zset

时间:2023-03-07 20:08:28 网络应用技术

    是提供非常特殊的数据结构,通常用作排名和其他功能。在两种不同的实现中,它们是和谐的。我们较早地介绍了它,我们不会在此处介绍。结构用于存储,规则是以下内容:

  &EMSP中使用的示意图; 如下所示:

    跳台时使用示意图:

    跳台可以确保增加,删除,检查等的时间复杂性。此性能可以与平衡的二进制树相媲美,但是实现方法更简单。实际上,它是改变空间时间的想法。跳台如下所示:

    中间跳表中的节点可以达到64层,最多可以存储2^64个元素。在跳台上,跳台,每个节点是一个,每个跳跃的节点将保持一个值。该值按跳台的顺序排列在跳台的顺序中。

    表跳转的结构定义如下所示:

    每个属性含义如下:

  标题:指向跳台的头节点,您可以通过此指针直接找到标题。

  尾巴:指向跳台的尾部节点,您可以通过该指针直接找到尾巴。

  长度:记录跳台的长度,即不包括头节点,整个跳台中有多少个元素

  级别:记录当前跳台中所有节点的最大数量

  &EMSP的示意图; 如下所示:

  &EMSP的结构定义; 如下:

    每个属性含义如下:

  &EMSP的示意图; 如下所示:

    例如,解释添加,删除和变更过程。

    例如,要插入的值是

    首先判断是否存在,如果没有存在,它是一种新场景,否则,它是更新场景。

    应该注意的是,更新后,首先找到,删除此,然后添加。在这种情况下,将进行两次搜索,并且性能会较慢。因此,在Redis 5.0版本中,Redis作者Salvatore Sanfilippo的作者优化了此更新过程。在目前,新的更新过程是确定此值是否首先存在。如果存在,它将直接更新,然后调整整个跳台的排序。这无需进行两次搜索即可提高性能。

    假设现在找到此节点,这些步骤如下:

    删除过程类似于查找,首先位置元素所在的位置,然后将其删除。最后,更新指针并更新最高数量的图层。

  &EMSP的新数据算法; 将使用新数据。该算法的主要作用是随机生成数字。该过程很简单。源代码如下:

  设置为Redis

  基础数据结构的跳台

  基础数据结构的五种基本数据类型的实现

  REDIS中强大的数据结构跳台

  跳台