redis入门六(SortedSet数据类型及相关操作)

  1. redis sorted set介绍
    ?:在集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。
    ?:在某些方面有序集合和列表类型有些相似。
    ①二者都是有序的。
    ②二者都可以获得某一范围的元素。
    但是,二者有着很大区别:
    ①列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会变慢。
    ②有序集合类型使用散列表实现,所有即使读取位于中间部分的数据也很快。
    ③列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改分数实现)
    ④有序集合要比列表类型更耗内存。
  2. 相关命令
    ?:增加元素
    zadd key score member [score member …](向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。 )
    在这里插入图片描述
    redis入门六(SortedSet数据类型及相关操作)_第1张图片
    返回的是新加入到集合中的元素个数,更新的话是返回0
    ?:获取元素的分数
    zscore key member
    在这里插入图片描述
    ?:删除元素
    zrem key member [member …](移除有序集key中的一个或多个成员,不存在的成员将被忽略。当key存在但不是有序集类型时,若是普通集合,返回0,若是列表,返回一个错误。)
    在这里插入图片描述
    redis入门六(SortedSet数据类型及相关操作)_第2张图片
    在这里插入图片描述
    在这里插入图片描述
    ?:获得排名在某个范围的元素列表
    zrange key start stop [WITHSCORES](按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素))
    在这里插入图片描述
    索引值类似list类型
    zrevrange key start stop [WITHSCORES](按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素))
    在这里插入图片描述
    如果需要获得元素的分数的可以在命令尾部加上WITHSCORES参数
    redis入门六(SortedSet数据类型及相关操作)_第3张图片
    ?:获得指定分数范围的元素
    zrangebyscore key min max [WITHSCORES] [LIMIT offset count](全闭合,升序)
    在这里插入图片描述
    如果需要获得元素的分数的可以在命令尾部加上WITHSCORES参数
    在这里插入图片描述
    zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count](全闭合,降序)
    在这里插入图片描述
    另外可以带分页,或者说是限制查询起始位置以及查询个数,使用limit命令
    redis入门六(SortedSet数据类型及相关操作)_第4张图片
    ?:增加某个元素的分数
    zincrby key increment member
    在这里插入图片描述
    返回值是更改后的分数
    ?:获取集合中元素的数量
    zcard key
    在这里插入图片描述
    ?:获得指定分数范围内的元素个数
    zcount key min max(全闭)
    redis入门六(SortedSet数据类型及相关操作)_第5张图片
    ?:按照排名范围删除元素
    ZREMRANGEBYRANK key start stop(全闭)
    redis入门六(SortedSet数据类型及相关操作)_第6张图片
    ?:按照分数范围删除元素
    ZREMRANGEBYSCORE key min max(全闭)
    redis入门六(SortedSet数据类型及相关操作)_第7张图片
    ?:获取元素的排名
    zrank key member(从小到大)
    redis入门六(SortedSet数据类型及相关操作)_第8张图片
    zrevrank key member(从大到小)
    在这里插入图片描述

你可能感兴趣的:(的先生在学redis)