Redis SORT排序命令实战

NoSQL之Redis---SORT排序命令 [不忘初心] 前文我们介绍了Redis中对Key的操作,由于Sort命令需要大量的示例,在此,先请读者准备好练习环境。好了,马上开始我们的正文部分。 SORT key [BY pattern] [LIMIT offset count] [GETpattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination] 阅读详情

对于Redis SORT排序命令,由于太复杂,使用很少了解也很少。下面整理了一些Redis SORT排序命令使用方法与例子,以留备用.
官网的说明地址:http://www.redis.cn/commands/sort.html

Redis SORT是由Redis提供的一个排序命令。集合中的标签是无序的,可以使用SORT排序。如:

redis>SADD muylist 5
(integer) 1
redis>SADD muylist 1
(integer) 1
redis>SADD muylist 2
(integer) 1
redis>SADD muylist 8
(integer) 1
redis>SORT muylist 
1) "1"
2) "2"
3) "5"
4) "8"

如果使用Redis SORT排序的不是数字,是字母,将他们按照字典的顺序排名,则需要使用

SORT muylist ALPHA

如果不加ALPHA参数,则会报错,提示:(error) ERR One or more scores can’t be converted into double。我们还可以使用关系型数据库的DESC进行倒序排序和LIMIT offset count来限定获取的条数

SORT muylist DESC LIMIT 0 2

还可以对Redis SORT命令添加BY参数。一条语句只能有一个BY参数。这时,SORT不会根据自身的值排序,比如(1,5,2,8和a,A,g,B),而是根据指定的另一个键中的字段来排序。如:

SORT tag:redis:article BY article:*->time DESC

解释:根据tag:redis:article中的值(tag是redis的文章ID),来组合成一个新的key就是article:(tag:redis:article中的一个值):time。获取到tag是redis的文章ID列表,然后根据他们的发布时间来排序。
Redis SORT命令还有个GET参数,GET参数类似在关系型数据库中的关联查询。比如查询tag是redis的文章ID列表,将列表根据发布时间倒序排序,然后获取每个文章的标题。GET可以有多个:

SORT tag:redis:article BY article:*->time DESC GET article:*->title GET article:*->time GET #

GET #的意思是,将文章ID返回回来,你可以写GET article:*->id,也可以写GET #。
Redis SORT命令还有个参数是STORE,是将排序后的内容存储到一个新的key中。新key的类型是列表类型,如果存在则会覆盖。这个时候可以用EXPIRE来设置缓存:

SORT tag:redis:article BY article:*->time DESC GET article:*->title GET article:*->time GET # STORE resultKey

Redis的SORT命令是Redis最复杂最强大的命令之一,时间复杂度是O(n+mLOGm)。n是待排序的列表长度,m是返回的元素个数。减少n和m会提高SORT的性能。

Redis常用命令——List篇 列表类型是用来存储多个有序的字符串,如下图所示,a、b、c、 d、e五个元素从左到右组成了一个有序的列表,列表中的每个字符串称为元素(element) ,一个列表最多可以存储2^32-1个元素。在Redis 中,可以对列表两端插入(push)和弹出 (pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景。 阅读详情

相关推荐

15-Redis 排序功能全解析:SORT 命令与有序集合运算实战指南

本文解析 Redis 排序功能:核心含 SORT 命令(单集合内数据排序,支持 ALPHA 非数字字典排序、DESC 倒序,适配列表 / 集合 / 有序集合,不修改原数据)与有序集合运算(ZINTERSTORE/ZUNIONSTORE,多有序集合关联排序,按分数聚合存储结果),对比二者操作对象、排序依据等差异。

蜗牛老师,专注编程领域 1130

深入浅出Redis(十二):Redis的排序命令Sort

本篇文章围绕Sort命令,深入浅出的解析Sort命令原理以及使用Sort命令使用新的等长数组来对list、set、zset对象进行排序,其中数组中的节点RedisSortObject存储元素地址和权值,先使用节点记录要排序对象中元素的地址和权值,再使用快速排序根据权值进行排序然后返回默认情况下权值为浮点型,如果是对字符串类型排序,需要使用alpha选项;想要使用其他key作为权值排序时使用by选项;限制结果集返回使用limit;想要返回其他key的值时使用get选项;

关注菜菜的后端私房菜,获取更多技术干货~ 1361

变色龙哈希函数 Chameleon Hash 可变型区块链

哈希函数 Hash: 众所周知,区块链有着极其优秀的安全性就是因为其充分使用了哈希函数。 哈希简单用一句话来讲,就是:将任意长度输入的字串可转换成一个固定长度的字串,通过原始字串可以很容易地算出转换后的字串,通过转换后的字串很难还原出原始字串。 哈希函数特征: 1. 对于任意m作为输入,得到输出的结果,很难找到另一个输入m'  (m'不等于m),使得m'的Hash结果也为同样的输出

新手村 1万+

Redis大总结之三:SORT命令(对 列表|集合|有序集合 进行排序)

SORT命令 对列表|集合|有序集合进行排序 对列表进行排序: 127.0.0.1:6379[5]> lrange myList 0 -1 1) "1" 2) "2" 3) "4" 4) "3" 5) "5" 127.0.0.1:6379[5]> sort myList 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 127.0.0.1:6379[5]&g..

weixin_46742102的博客 601

告别卡顿!用AVPro Video在Unity 2022.3里流畅播放4K视频的保姆级配置流程

本文详细介绍了如何在Unity 2022.3中使用AVPro Video插件实现4K视频的流畅播放。从环境配置、插件选型到核心性能优化技巧,包括解码器设置、内存管理策略和多平台适配方案,帮助开发者彻底解决卡顿问题,提升视频播放体验。

weixin_32349561的博客 318

别再乱按F8了!Win10系统修复的正确姿势:用管理员CMD运行sfc /scannow

本文详细介绍了Windows 10系统修复的正确方法,重点推荐使用管理员CMD运行`sfc /scannow`命令。相比传统的F8键和重装系统,这一方法更高效且安全,能解决大多数系统文件损坏问题。文章还提供了管理员CMD的启动方式、sfc命令的完整参数解析以及实战故障排除流程图,帮助用户快速恢复系统健康。

weixin_29218963的博客 457

redis学习:redis五大基础数据类型之Zset

这个Zset和前面的Set的不同地方是,Set是无序的集合,Zset是有序的集合。 不同的是每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大的排序。 score相同:按字典顺序排序 有序集合的成员是唯一的,但分数(score)却可以重复。 命令 描述 ZADD key score member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数 ZCARD key 获取有序集合的成员数

FeiChangWuRao的博客 1029

避坑指南:Zephyr RTOS与nRF Connect SDK环境搭建常见错误及解决方案

本文详细解析了Zephyr RTOS与nRF Connect SDK环境搭建过程中的常见错误及解决方案,涵盖网络问题、代理设置、SEGGER Embedded Studio配置、分支切换等关键环节。针对开发者实际遇到的痛点问题,提供了一系列实用技巧和深度排错方法,帮助高效完成NCS开发环境部署。

weixin_28685287的博客 168

redis 五种数据结构常用操作命令详解(String,list,set,zset,hash)

无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!序key Stringvalue ZSET值=分数+值无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。

2301_79655473的博客 1040

高通8155车机系统里,安卓和QNX是怎么‘打电话’的?聊聊HAB通信框架那些事

本文深入解析了高通8155车机系统中HAB通信框架如何实现安卓与QNX的高效协同。作为异构系统的通信桥梁,HAB通过共享内存和中断信号机制,在多媒体数据传输中展现出零拷贝、硬件加速等优势,成为智能座舱实现实时性与生态丰富性平衡的关键技术。

weixin_42715608的博客 381

SPICE仿真软件:Ngspice_(2).安装与配置

在Netlist文件中直接定义模型。V1 1 0 5R1 2 0 1k* Analysis库文件中可以包含多种电路元件模型和参数。

kkchenjj的博客 1585

mysql key value 排序_Redis SORT排序命令使用方法详解

对于Redis SORT排序命令 我相信大家都不怎么了解了,因此小编整理了一些Redis SORT排序命令使用方法与例子,希望例子可以对各位玩家带来帮助哦. Redis SORT是由Redis提供的一个排序命令。集合中的标签是无序的,可以使用SORT排序。如: redisSADD jihe 5 (in对于Redis SORT排序命令 我相信大家都不怎么了解了,因此小编整理了一些Redis SOR...

weixin_39756540的博客 265

第1讲|AI产品经理全景图谱:不是“会用AI工具”,而是能对AI产品结果负责

本文从岗位本质出发,系统拆解 AI 产品经理的职责、岗位类型与能力模型,帮助读者理解 AI PM 与传统 PM 的核心差异,明确自己适合的转型方向,并建立“对 AI 产品结果负责”的产品认知。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1014

Redis 常用命令(键值相关命令、服务器相关命令、sort 排序函数)

1. Redis 键值相关命令及操作 序号 命令 格式 解释 1 keys keys pattern 返回满足给定要求的所有 key 2 exists exists keys 确认一个 key 是否存在 3 del del key 删除一个 key 4 expire expire key seconds 设置一个 key 的过期时间(单位:秒) 5 move mov...

业余敲代码 460

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

redis排序 php,redis中怎么对list进行排序

redis中对list排序使用sort进行。最简单的SORT使用方法是SORT key和SORT key DESC:SORT key 返回键值从小到大排序的结果。SORT key DESC 返回键值从大到小排序的结果。例:假设today_cost列表保存了今日的开销金额, 那么可以用 SORT 命令对它进行排序:# 开销金额列表redis> LPUSH today_cost 30 1.5 1...

weixin_36410904的博客 356

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

NoSQL数据库(三)03-Redis进阶与实战——EXPIRE实现服务器缓存数据 & sort实现排序之对列表类型、有序集合和非数字类型进行排序 & Redis的底层通信协议对管道提供支持

实际开发中会发现很难为缓存键设置合理的过期时间,为此可以限制 Redis 能够使用的最大内存,并让Redis按照一定的规则淘汰不需要的缓存键,这种方式在只将Redis用作缓存系统时非常实用。又比如一个存储用户性别的字符串类型键的取值是male和female,我们可以将其修改成m和f来为每条记录节约几个字节的空间,甚至通过二进制的0和1来表示。如果提供了 BY 参数,SORT 命令将不再依据元素自身的值进行排序,而是对每个元素使用元素的值替换参考键中的第一个“*”并获取其值,然后依据该值对元素排序。

weixin_44867717的博客 245

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Redis基本操作进阶篇学习--排序

Redis中SORT命令可以对列表类型、集合类型以及有序集合类型键进行排序,并返回显示排序的结果,但是不会对原有数据进行修改。

Kang 749

Redis高级 之 sort 排序

sort排序的语法: SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination] 用来返回或保存给定列表、集合、有序集合中经过排序的元素。 sort是Redis中最强大最复杂的命令之一,如果使用不好很容易成为性能瓶颈。SOR...

哈 2356

Redis(十):进阶篇 - 排序SORT

排序 1、有序集合的集合操作   集合类型提供了强大的集合操作命令,但是如果需要排序就要用到有序集合类型。Redis的作者在设计Redis的命令时考虑到了不同数据类型的使用场景,对于不常用到的或者在不损失过多性能的前提下可以使用现有命令来实现的功能,Redis就不会单独提供命令来实现。这一原则使得Redis在拥有强大功能的同时保持着相对精简的命令。   有序集合常见的使用场景是大数据排序,如游戏的玩家排行榜,所以很少会需要获得键中的全部数据。同样Redis认为开发者在做完交集、并集运算后不需要直接获得全部结

HY0101的博客 2071

redis排序

Redis的SORT命令可以对列表键、集合键或者有序集合键的值进行排序。

flyingmylife的博客 3266

Redis研究(十七)—SORT排序

一、有序集合的集合操作        集合类型提供了强大的集合操作命令,但是如果需要排序就要用到有序集合类型。Redis的作者在设计Redis的命令时考虑到了不同数据类型的使用场景,对于不常用到的或者在不损失过多性能的前提下可以使用现有命令来实现的功能,Redis就不会单独提供命令来实现。这一原则使得Redis在拥有强大功能的同时保持着相对精简的命令。        有序集合常见的使用场景是大

小地盘的诺克萨斯 7212

Redis过期时间和SORT命令的高级用法

在实际的开发中经常会遇到一些有时效的数据,比如限时优惠活动、缓存或验证码等,过了一定的时间就需要删除这些数据。是 Redis 中一个强大的命令,用于对列表、集合或有序集合中的元素进行排序。选项配合,就可以在不排序的情况下,获取多个外部键,相当于执行一个整合的获取操作(类似于 SQL 数据库的。因为直接使用有序集合不如集合操作强大,当排序不经常使用的时候,可以使用集合存储数据,然后使用。命令只能设置精确的秒数,不能设置到毫秒级别,如果需要精确到毫秒级别的控制,可以使用。中的值,然后再用这个值来查找相应的键。

andrewbytecoder 1835

redis之sort命令

SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination] 返回或保存给定列表、集合、有序集合 key 中经过排序的元素。 排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。 一、一般sort用法 最简单

kfengqingyangk的博客 449

Redis中的排序sort

Redis中的排序sort        Redis的SORT命令可以对列表键、集合键或者有序集合键的值进行排序。        SORT命令对number列表元素排序        使用ALPHA选项对一个包含字符串值的集合键进行排序SORT<key>命令的实现        SORT命令的最简单执行形式为:        SORT<key>        这个命令可以对...

Dazhu233的博客 1179

redis排序sort

SORT SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination] 返回或保存给定列表、集合、有序集合key中经过排序的元素。 排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。 一般 SORT 用法 ...

b_just的博客 232
上一篇: Redis的三种启动方式
下一篇: The Little Redis Book
架构师的清醒
博客等级 码龄14年 291粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值