Redis 高级数据结构:七、有序集合对象

概述###

有序集合是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 返回指定成员分数
posted @ 2019-11-23 21:13  六月过半  阅读(187)  评论(0编辑  收藏  举报