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