Redis排序相关命令

举报
别团等shy哥发育 发表于 2023/02/04 11:43:02 2023/02/04
【摘要】   排序是数据库必备的命令,在Redis这种NoSQL数据库里可以通过本节给出的命令对列表、集合与有序集合等格式的数据进行升序或降序的排列操作。 1、用sort命令进行排序  在sort命令里,可以通过asc参数进行升序排列操作,通过desc参数进行降序排列操作。  通过lpush命令向键是salary的列表(list)里插入了若干数据,随后通过sort命令对salary对象进行了升序排列。...

  排序是数据库必备的命令,在Redis这种NoSQL数据库里可以通过本节给出的命令对列表、集合与有序集合等格式的数据进行升序或降序的排列操作。

1、用sort命令进行排序

  在sort命令里,可以通过asc参数进行升序排列操作,通过desc参数进行降序排列操作。
在这里插入图片描述
  通过lpush命令向键是salary的列表(list)里插入了若干数据,随后通过sort命令对salary对象进行了升序排列。排序命令不会对列表本身的数据产生影响。使用lrange命令查看salary列表里所有索引的元素,就会发现其中元素的次序依然是插入时的次序,而不是排序后的次序。
在这里插入图片描述

由于这里排序的对象不是数值型元素,因此要加上alpha参数

  下面演示对有序集合排序,在有序集合里,同时包含了元素本身和描述元素权重的score,而sort命令只会针对元素值进行排序。
在这里插入图片描述

2、用by参数指定排序模式

  比如用lpush命令向vipLevel的列表里插入若干以VIP开头的数据后,如果想按VIP后面跟着的数字排序,则可以用by参数来指定排序模式。
在这里插入图片描述

3、用limit参数返回部分排序结果

[LIMIT offset count]

offset表示需要调过的已排序元素的个数
count表示需要返回元素的个数

在这里插入图片描述

4、sort命令里get参数的用法

  通过sort命令里的get参数可以用排序的结果作为键,再去获取对应的值。
在这里插入图片描述
  如果在sort方法里加入get参数,就会把原本作为排序结果的值当作键,用这些键再去获取值,最终展示这些值的排序结果。

5、通过store参数提升性能

  对于给定的数据对象,如果经常需要用相对固定的模式进行排序,就可以用store参数来缓存结果,这样每次做相同的排序动作就不需要耗费资源从头做起了,可以从缓存中直接得到结果。
在这里插入图片描述
  在第1行用sort命令对score进行降序排列,同时还用store参数把排序的结果保存到score-desc里,这样通过lrange就可以看到缓存结果score-desc对象中的数据。
  这样数据比较少,缓存的意义可能不明显,如果待排序的数据很多,比如十万级以上,而且会频繁用到排序后的结果,那么用store缓存结果后就能在很大程度上提升系统的性能。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。