标签:分数 pre 成员 长度 命令 个数 type rem typedef
有序集合是ziplist或者skiplist
ziplist就是压缩列表,ZADD时 就根据分值来排序
skiplist会复杂一些,他的底层有两个数据结构,一个是跳跃表,一个是字典
typedef struct zset{
zskiplist *zsl;
dict *dict
...
}
dict的作用是定义key和score的关系。两个结构都保存了所有元素,对范围操作和根据key定位分值这种操作就互相提供支持了,典型的空间换时间的思想。
ziplist的使用条件:
元素数量小于128个;
所有元素成员长度都小于64字节;
skiplist的使用条件:
不满足上面的条件
上面两个值可以通过参数来改变
zset-max-ziplist-entries
zset-max-ziplist-value
命令 | 作用 |
---|---|
ZADD | 添加 成员和分值 |
ZCARD | 返回成员数量 |
ZCOUNT | 返回分值范围内的节点数量 |
ZRANGE | 从头向尾遍历 返回索引范围内数据 |
ZREVRANGE | 从尾向头遍历 返回索引范围内数据 |
ZRANK | 从头向尾遍历,返回给定成员分值排名 |
ZREVRANK | 从尾向头遍历,返回给定成员分值排名 |
ZREM | 删除成员 |
ZSCORE | 返回指定成员分数 |
标签:分数 pre 成员 长度 命令 个数 type rem typedef
原文地址:https://www.cnblogs.com/june777/p/11912196.html