码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-11-23 22:11:41      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:分数   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 返回指定成员分数

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

标签:分数   pre   成员   长度   命令   个数   type   rem   typedef   

原文地址:https://www.cnblogs.com/june777/p/11912196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!