Redis 有序集合(sorted set)

Redis 有序集合(sorted set)

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

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

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

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

实例

[root@localhost ~]# redis-cli

127.0.0.1:6379> ZADD testkey 1 redis

(integer) 1

127.0.0.1:6379> ZADD testkey 2 mongodb

(integer) 1

127.0.0.1:6379> ZADD testkey 3 mysql

(integer) 1

127.0.0.1:6379> ZADD testkey 3 mysql

(integer) 0

127.0.0.1:6379> ZADD testkey 4 mysql

(integer) 0

127.0.0.1:6379> ZRANGE testkey 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]
迭代有序集合中的元素(包括元素成员和元素分值)

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/293.html

(0)
admin的头像admin
上一篇 2020年5月12日
下一篇 2020年5月12日

相关推荐

  • Redis 配置文件

    Redis 配置 Redis 的配置文件位于Redis安装目录下,文件名为redis.conf(Windows 名为 redis.windows.conf)。 你可以通过CONFI…

    2020年5月12日
    100
  • Redis 分区

    Redis 分区 分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。 分区的优势 通过利用多台计算机内存的和值,允许我们构造更大的数据库。 通过多核…

    2020年5月13日
    000
  • Redis 事务

    Redis 事务 Redis 事务可以一次执行多个命令,并且带有以下三个重要的保证: 批量操作在发送EXEC命令前被放入队列缓存。 收到EXEC命令后进入事务执行,事务中任意命令执…

    2020年5月13日
    000
  • Redis 数据类型

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 Stri…

    2020年5月12日
    000
  • Redis 服务器

    Redis 服务器 Redis 服务器命令主要是用于管理redis服务。 实例 以下实例演示了如何获取redis服务器的统计信息: [root@localhost ~]# redi…

    2020年5月13日
    000
  • Redis 字符串(String)

    Redis 字符串(String) Redis 字符串数据类型的相关命令用于管理redis字符串值,基本语法如下: 语法 127.0.0.1:6379> COMMAND KE…

    2020年5月12日
    000
  • Linux部署Redis-Sentinel集群

    一、Redis-Sentinel简介 Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(inst…

    2022年11月28日
    000
  • Ubuntu 22.04安装Redis

    一、方式一 1、安装Redis 1)更新系统 root@ubuntu:~# apt update -y 2)安装Redis root@ubuntu:~# apt -y instal…

    2024年11月6日
    000
  • Redis 性能测试

    Redis简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开…

    2020年5月13日
    000
  • Redis配置文件详解

    Redis配置文件详解 #daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize yes # 当 r…

    2017年12月14日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注