Redis 高级数据结构:七有序集合对象
Posted 六月过半
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 | 返回指定成员分数 |
以上是关于Redis 高级数据结构:七有序集合对象的主要内容,如果未能解决你的问题,请参考以下文章