redis ZRANGE 使用最详细文档

环境:

redis_version:7.2.2

本文参考 redis 官方文档1

语法

ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count]   [WITHSCORES]
参数含义
key是有序集合的键名
start stop在不同语境下,可用值不一样
BYSCORE | BYLEX按照分数查询 | 相同分数按字典序返回
REV分数降序,相同分数 value 字典降序; 默认是升序,相同分数 value 字典升序;
WITHSCORES返回分数

不加 BYSCORE | BYLEX 时

start stop 表示元素下标,从 0 开始,0 表示第一个元素,-1 表示最后一个元素,大于有续集合长度,也不会报错。要求 start <= stop (start 是正数,stop 是负数除外)。

# 取出第一个元素
zrange test:zset_0 0 0
# 取出全部元素
zrange test:zset_0 0 -1
# 取出 最后两个元素
zrange test:zset_0 -2 -1
# 不会返回任何元素
zrange test:zset_0 -1 -2

在这里插入图片描述

使用 BYSCORE 参数

start, stop 表示分数;可选值 -inf (负无穷大), 整数, +inf(正无穷大),整数前可加( 符号表示不包含当前值

# 所有值
zrange test:zset_0 -inf +inf BYSCORE
# score in [1, 3]
zrange test:zset_0 1 3 BYSCORE
# score in (1, 3]
zrange test:zset_0 (1 3 BYSCORE
# score in (1, 3)
zrange test:zset_0 (1 (3 BYSCORE

在这里插入图片描述

使用 BYLEX 参数 时

start stop 是字符串,可以 是 -+ 表示 负无穷、正无穷;或以 ([ 开头;
不使用 rev 关键字, 字典序 start <= stop
使用 rev 关键字, 字典序 start >= stop

# 添加 元素到 test:zset_1
zadd test:zset_1 0 'one' 0 'two' 0 'three'
# 查询所有元素
zrange test:zset_1 - + bylex
# value 字典序 in (one, tz]
zrange test:zset_1 (one [tz bylex
# value 字典序 in [one, tz]
zrange test:zset_1 [one [tz bylex

在这里插入图片描述

官方文档要求 使用 BYLEX 的有序集合 score 应保持一致。实际上不一致也可以使用,只不过结果可能不符合预期

zadd test:zset_0 1 'one' 2 'two' 3 'three'
zrange test:zset_0 - + bylex
zrange test:zset_0 [a [z bylex
zrange test:zset_0 [a [three bylex

在这里插入图片描述

使用 REV 参数 时

  • 默认 start <= stop 表示下标。
    # 取出倒序的前两个元素
    zrange test:zset_0 0 1 rev
    # 取出倒序的第一个元素
    zrange test:zset_0 0 0 rev
    # 取出倒序的所有元素
    zrange test:zset_0 0 -1 rev
    
  • 如果使用了 BYSCORE start, stop 表示分数,start >= stop。
    # 所有元素
    zrange test:zset_0 +inf -inf rev byscore
    # score in [3, 3]
    zrange test:zset_0 3 3 rev byscore
     # score in (1, 3)
    zrange test:zset_0 (3 (1 rev byscore
    # score in [2, 3)
    zrange test:zset_0 (3 2 rev byscore
    
    在这里插入图片描述
  • 如果使用了 BYLEX start, stop 表示 value 的字典序,start >= stop。
     # 所有元素
     zrange test:zset_1 + - bylex rev
     # 按字段倒序 查询 value in [two, three]
     zrange test:zset_1 [two [three bylex rev
     # 按字段倒序 查询 value in [two, three)
     zrange test:zset_1 [two (three bylex rev
    
    在这里插入图片描述

LIMIT offset count 分页查询

仅支持 byscore 或 bylex 查询

WITHSCORES 返回分数

不支持 BYLEX 参数
在这里插入图片描述


  1. ZRANGE ↩︎

  • 24
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一种高性能的键值存储数据库,它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合。本文将介绍如何在Redis使用这些数据结构。 1. 安装Redis 首先,你需要在你的机器上安装Redis。具体安装方法可以参考Redis官方文档。 2. 启动Redis 安装完成后,你可以通过以下命令启动Redis服务: ``` redis-server ``` 如果你想在后台运行Redis,可以使用以下命令: ``` redis-server --daemonize yes ``` 3. 连接Redis 连接Redis非常简单,只需要在命令行中输入以下命令: ``` redis-cli ``` 这将打开一个Redis客户端,你可以在其中执行各种Redis命令。 4. 存储和获取字符串 在Redis中,你可以使用SET命令存储一个字符串: ``` SET key value ``` 例如,要将名为“name”的键的值设置为“John”,你可以执行以下命令: ``` SET name John ``` 你可以使用GET命令获取存储的字符串: ``` GET key ``` 例如,要获取名为“name”的键的值,你可以执行以下命令: ``` GET name ``` 5. 存储和获取哈希表 在Redis中,你可以使用HSET命令存储一个哈希表: ``` HSET key field value ``` 例如,要将名为“user”的哈希表的“name”字段设置为“John”,你可以执行以下命令: ``` HSET user name John ``` 你可以使用HGET命令获取存储的哈希表: ``` HGET key field ``` 例如,要获取名为“user”的哈希表的“name”字段的值,你可以执行以下命令: ``` HGET user name ``` 6. 存储和获取列表 在Redis中,你可以使用LPUSH命令将一个元素添加到列表的开头: ``` LPUSH key value ``` 例如,要将名为“fruits”的列表的第一个元素设置为“apple”,你可以执行以下命令: ``` LPUSH fruits apple ``` 你可以使用LRANGE命令获取存储的列表: ``` LRANGE key start stop ``` 例如,要获取名为“fruits”的列表的所有元素,你可以执行以下命令: ``` LRANGE fruits 0 -1 ``` 7. 存储和获取集合 在Redis中,你可以使用SADD命令将一个元素添加到集合中: ``` SADD key value ``` 例如,要将名为“colors”的集合添加一个元素“red”,你可以执行以下命令: ``` SADD colors red ``` 你可以使用SMEMBERS命令获取存储的集合: ``` SMEMBERS key ``` 例如,要获取名为“colors”的集合的所有元素,你可以执行以下命令: ``` SMEMBERS colors ``` 8. 存储和获取有序集合 在Redis中,你可以使用ZADD命令将一个元素添加到有序集合中: ``` ZADD key score value ``` 例如,要将名为“scores”的有序集合添加一个元素“John”和分数100,你可以执行以下命令: ``` ZADD scores 100 John ``` 你可以使用ZRANGE命令获取存储的有序集合: ``` ZRANGE key start stop ``` 例如,要获取名为“scores”的有序集合的所有元素,你可以执行以下命令: ``` ZRANGE scores 0 -1 ``` 以上就是Redis中文使用教程的全部内容。通过这篇文章,你应该已经学会了如何在Redis使用不同的数据结构。希望这篇文章能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值