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可以实现排名功能
相关推荐
王道革 2020-11-25
wangdonghello 2020-11-03
Langeldep 2020-11-16
chenhualong0 2020-11-16
聚合室 2020-11-16
koushr 2020-11-12
MRFENGG 2020-11-11
guoyanga 2020-11-10
fackyou00 2020-11-10
Orangesss 2020-11-03
dongCSDN 2020-10-31
rainandtear 2020-10-30
Quietboy 2020-10-30
liuyulong 2020-10-29
fansili 2020-10-29
温攀峰 2020-10-23
jackbon 2020-10-19
kaixinfelix 2020-10-04