【Redis学习】:sortedset数据类型详解

sortedset数据结构
sortedset和set类型极为类似,它们都是字符串的集合,都不允许重复的成员出现在一个set集合中。它们之间的主要差别是sortedset中的每一个成员都会有一个分数(score)与之关联,redis正是通过分数来为集合指那个的成员进行从大到小的排序。然而需要额外指出的是尽管sortedset中的成员必须是唯一的,但是分数却是可以重复的。
在sortedset中添加、删除或更新一个成员都是非常快速的操作。其时间复杂度为集合中成员数量的对数。由于sortedset中的成员在集合中的位置是有序的。因此,即便是访问位于集合中部的成员也仍然是非常高效的。

应用场景:
游戏排名、微博热点话题等使用场景

常用命令
添加元素
zadd key score1 member1 score2 member2 .. .
将所有成员以及该成员的分数存放到sortedset中。如果该元素已经存在,则会用心的分数替换原有的分数,返回值时新加入到集合中的元素个数,不包含之前已经存在的元素。


获取元素
zscore key member
获取指定成员的分数


zcard key
获取集合中的成员数量


删除元素
zrem key member1 member2 .. .
移除集合中指定的成员,可以指定多个成员


范围查询
zrange key start end [withscores]
获取集合中下标为stert到end的成员,[withscore]参数表名返回的成员包含其分数。


zrevrange key start stop [withscores]
按照元素分数从大到小的顺序返回下标从start到stop之间的所有元素,包含两端的元素,[withscore]参数表名返回的成员包含其分数。


zremrangebyrank key start stop
按照排名范围删除元素


zremrangebyscore key start stop
按照分数范围删除元素


zrangebyscore key min max [withscores] [limit offset count]
返回分数在[min,max]的成员并按照分数从低到高排序。[withscores]表示显示分数,[limit offset count]中的ofsfet表示从下标offset的元素开始并返回count个成员。


zincrby key increment member
设置指定成员的增加的分数,返回值是更改后的分数


zcount key min max
获取分数在[min,max]之间的成员


zrank key member
从小到大返回成员在集合中的排名
zrevrank key member
从大到小返回成员在集合中的排名


使用场景



keys通用操作
keys pattern
获取所有域pattern匹配的key,*表示任意一个或多个字段,?表示一个字符、
keys *
keys my*
keys ??list
keys my???


del key1 key2 ...
删除指定的key


exists key
判断该key是否存在,1代表存在,0代表不存在


rename key newkey
为当前的key重命名


expire key
设置过期时间,单位是秒
ttl key
获取该key剩的超时时间,如果没有设置超时,返回-1,如果返回-2表示超时不存在


type key
获取指定key的类型,该命令将以字符串的格式返回,返回的字符串是string、lsit、set、hash、zset。如果key不存在返回none。



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值