首页 > 编程知识 正文

redis有序集合数据结构,redis有序的写入集合

时间:2023-05-04 15:17:13 阅读:31306 作者:3023

有序集合和集合几乎一样。 不同的是,有序集合中的元素可以排序,但与列表使用下标进行排序不同,有序集合使用分数作为依据进行排序。 有序集合不能重复,但分数可以重复。

使用场景对发表在博客网站上的文章进行排名。 排名的维度可能是按时间、按评价数。 例如,使用用户每天发布的文章的评价数,实现以下功能。 1、增加用户评价数2、取消用户赞成与否3、展示评价数最多的10个用户4、显示用户信息及用户得分。 考虑使用有序的集合来实现。

实现有序集合的实现有压缩列表ziplist、跳过列表skiplist两种。 使用元素数量少、元素小的压缩列表; 元素个数超过128个,转换为skiplist; 如果一个元素大于64字节,它将转换为skiplist。

添加命令#成员zaddkeyscorememeber [ score memeber . ] zadd有四个选项

nx: member必须不存在,才能成功设置和添加

xx: member必须存在,才能成功配置以进行更新

ch:返回本次操作后,有序集合和分数变化的个数

incr:被添加到score中相当于后述的zincrby

有序集合与集合相比,排序特性增加,因此产生成本,zadd的时间复杂度为o[log[n],sadd的时间复杂度为o[1]

#计算成员数zcard key#计算成员分数zscore key member#计算成员排名zrankkeymemberzrevrankkeymember #成员zrem key member [ member . 增加成员分数zinc rby密钥增量成员#指定排名范围内的成员zrangekeystartend [ with scores ] zrevrangekeystartend [ with scores ] # 返回的指定分数范围内的成员zrangebyscorekeyminmax [ with scores ] [ limitoffsetcount ] zrevangebyscorekeymaxmin [ with scores ] [ limitoffffsetion 返回指定分数范围内的成员数zcount key min max#删除指定排名中的升序元素zremrangebyrank key start end#指定分数范围内的成员zremrangebyscore key

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。