Redis数据结构之有序集合sortedset
Posted 即使再小的帆也能远航!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis数据结构之有序集合sortedset相关的知识,希望对你有一定的参考价值。
有序集合(sorted set)用于存储多个字符串元素,它是在集合(set)的基础上给每个元素增加了一个用于排序的字段(SCORE),元素同样不可重复,可以根据分数索引获取元素,此外,提供了根据score获取指定范围以及排序功能
常用命令
添加
zadd:添加数据,返回元素个数
zadd key score1 member1 score2 member2 ..
127.0.0.1:6379> zadd sorted 10 a 20 b 30 c
(integer) 3
查询
zrange:获取元素(正序)
zrange key start stop [withscores]
withscores:获取数据时带上他的score值
获取全部元素
zrange key 0 -1
zrevrange:获取元素(倒序)
zrevrange start stop [withscores]
zcard:获取集合元素个数
zcard sorts
删除
zrem:删除元素
zrem key member
zrangebyscore:按照条件获取元素
zrangebyscore key min max
zrevrangebyscore key min max
zremrangebyrank:根据索引删除删除元素
zremrangebyrank key start stop
zremrangebyscore:根据score删除元素
zremrangebyscore key min max
内部编码
有序集合类型内部有2种编码:
-
ziplist(压缩列表):当集合中的元素都是整数,且元素个数小于zset-max-ziplist-entries配置(默认512个)时,Redis会采用ziplist来做为集合的内部实现,从而减少内存的使用。
-
skiplist(跳跃表):当有序集合类型无法满足ziplist的条件时,Redis就会使用skiplist做为有序集合的内部实现。
适用场景
排名
利用zrange和zrevrange可以实现排名功能
以上是关于Redis数据结构之有序集合sortedset的主要内容,如果未能解决你的问题,请参考以下文章
大数据之Redis:Redis数据类型之Zset及相关的命令行操作