Redis 有序集合(sorted set)

Stella981
• 阅读 617

Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

实例

redis 127.0.0.1:6379> ZADD runoobkey 1 redis (integer) 1 redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb (integer) 1 redis 127.0.0.1:6379> ZADD runoobkey 3 mysql (integer) 1 redis 127.0.0.1:6379> ZADD runoobkey 3 mysql (integer) 0 redis 127.0.0.1:6379> ZADD runoobkey 4 mysql (integer) 0 redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES

  1. "redis"
  2. "1"
  3. "mongodb"
  4. "2"
  5. "mysql"
  6. "4"

在以上实例中我们通过命令 ZADD 向 redis 的有序集合中添加了三个值并关联上分数。

Redis 有序集合命令

下表列出了 redis 有序集合的基本命令:

序号

命令及描述

1

ZADD key score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数

2

ZCARD key
获取有序集合的成员数

3

ZCOUNT key min max
计算在有序集合中指定区间分数的成员数

4

ZINCRBY key increment member
有序集合中对指定成员的分数加上增量 increment

5

ZINTERSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中

6

ZLEXCOUNT key min max
在有序集合中计算指定字典区间内成员数量

7

ZRANGE key start stop [WITHSCORES]
通过索引区间返回有序集合成指定区间内的成员

8

ZRANGEBYLEX key min max [LIMIT offset count]
通过字典区间返回有序集合的成员

9

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
通过分数返回有序集合指定区间内的成员

10

ZRANK key member
返回有序集合中指定成员的索引

11

ZREM key member [member ...]
移除有序集合中的一个或多个成员

12

ZREMRANGEBYLEX key min max
移除有序集合中给定的字典区间的所有成员

13

ZREMRANGEBYRANK key start stop
移除有序集合中给定的排名区间的所有成员

14

ZREMRANGEBYSCORE key min max
移除有序集合中给定的分数区间的所有成员

15

ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定区间内的成员,通过索引,分数从高到底

16

ZREVRANGEBYSCORE key max min [WITHSCORES]
返回有序集中指定分数区间内的成员,分数从高到低排序

17

ZREVRANK key member
返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

18

ZSCORE key member
返回有序集中,成员的分数值

19

ZUNIONSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的并集,并存储在新的 key 中

20

ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代有序集合中的元素(包括元素成员和元素分值)

点赞
收藏
评论区
推荐文章
把帆帆喂饱 把帆帆喂饱
1年前
Redis入门
Redis1、Redis概述Redis介绍Redis是一个开源的keyvalue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset–有序集合)和
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Spring Boot Redis RedisTemplate 相关API介绍
Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种。SpringBoot集成redis的RedisTemplate,也分别提供的对这些数据类型的操作。主要有5大类:redisTemplate.opsForValue();//操作字符串redis
Stella981 Stella981
3年前
Redis实例讲解
简介  Redis是一个keyvalue的nosql产品,和我们熟知的Memcached有些类似,但他存储value类型相对更加丰富,包括string(字符串),list(链表),set(集合),zset(sortedset有序集合)和hash。与memcached一样,为了保证高效率,数据都是缓存在内存中。区别的是redis类型众多,也被
Stella981 Stella981
3年前
Redis常用命令
Redis常用命令Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)等https://gitee.com/nmwork/RedisUtil(https://gitee.com/nmwork/RedisUtil)1.  Redis数
Stella981 Stella981
3年前
Redis(一) String类型操作【存字符串、存数字】
什么是redis?  redis是一个keyvalue存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更
Stella981 Stella981
3年前
Redis的安装配置和使用
  现在我来讲解一下Redis的安装和配置,那么什么是Redis呢?他的作用是什么呢?  redis是一个keyvalue存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/
Stella981 Stella981
3年前
Redis的主从复制
一、redis的五种数据类型:string是字符串类型,是redis最基本的数据类型。哈希类型hash,hash特别适合存储对象列表类型list,按照插入顺序排序集合类型set,不允许有重复数据有序集合类型zset,不允许有重复数据二、redis主从复制为了避免服务器停机导致数据库数据丢失,为了避免单点故障,我们需
Stella981 Stella981
3年前
Redis命令行之Zset
一、Redis之Zset简介1\.有序集合Zset是String类型的有序集合。2\.Zset中每个元素都会关联一个double类型的分数值,redis通过分数值来为集合中所有成员进行从小到大排序。3\.Zset的成员是唯一的,但分数值可以重复。4\.Zset是通过hash表实现的,添加、删除、查找的复杂度都是O(1)。5
Stella981 Stella981
3年前
Redis数据结构
Redis数据结构有序集合有序集合和集合类似,只是说它是有序的,和无序集合的主要区别在于每一个元素除了值之外,它还会多一个分数。分数是一个浮点数,在Java中是使用双精度表示的,对于每一个元素都是唯一的,但是对于不同元素而言,它的分数可以一样。元素也是String数据类型,也是一种