redis zset底层实现


zset实现是由ziplist(数据量小),和skiplist(跳表)实现。

有序集合使用 ziplist 格式存储必须满足以下两个条件:

  • 有序集合保存的元素个数要小于 128 个;
  • 有序集合保存的所有元素成员的长度都必须小于 64 字节。

可以通过配置文件中的 zset-max-ziplist-entries(默认 128)和 zset-max-ziplist-value(默认 64)来设置有序集合使用 ziplist 存储的临界值。

typedef struct zset {
    dict *dict;
    zskiplist *zsl;
} zset;

跳表原理图

 跳表详细: 数组指针实现https://blog.csdn.net/weixin_45480785/article/details/116293416?utm_source=app&app_version=5.1.1

                 指针节点实现https://www.cnblogs.com/bigsai/p/14193225.html