Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-sort.html

Redis SORT 命令

Redis 键(Keys) Redis 键(Keys)


SORT命令返回或保存指定列表、集合、有序集合key中经过排序的元素。

命令格式

SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]

可用版本:>=1.0.0

时间复杂度:O(n+m*log(m)),n为要排序的列表或集合内的元素数量,m为要返回的元素数量。

如果只是使用SORT命令的GET选项获取数据而没有进行排序,时间复杂度 O(n)。

排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。

命令参数

  • BY <pattern>:通过使用BY选项,可以让其指定键的元素来排序。
  • LIMIT <offset count>:排序之后返回元素的数量可以通过LIMIT修饰符进行指定。offset指定要跳过的元素数量;count指定跳过offset个指定的元素之后,要返回多少个对象。
  • GET <pattern>:使用GET选项,可以根据排序的结果来取出相应的键值。可以同时使用多个GET选项,获取多个外部键的值。
  • ASC | DESC:升序或降序指定。
  • ALPHA:因为SORT命令默认排序对象为数字,当需要对字符串进行排序时,需要显式地在SORT命令之后添加ALPHA修饰符。
  • STORE <destination>:默认情况下,SORT操作只是简单地返回排序结果,并不进行任何保存操作。通过给STORE选项指定一个key参数,可以将排序结果保存到指定的键上。如果被指定的key已存在,那么原有的值将被排序结果覆盖。

命令返回值

SORT命令返回有2种情况:

  • 没有使用STORE参数,返回列表形式的排序结果。
  • 使用STORE参数,返回排序结果的元素数量。

示例

redis> LPUSH today_cost 30 1.5 10 8
(integer) 4
redis> SORT today_cost                    # 默认按照值升序 
1) "1.5"
2) "8"
3) "10"
4) "30"
redis> SORT today_cost DESC               # 默认按照值降序
1) "30"
2) "10"
3) "8"
4) "1.5"
redis> LPUSH website "www.reddit.com" "www.slashdot.com" "www.infoq.com"
(integer) 3
redis> SORT website ALPHA                 # 字符串升序排序
1) "www.infoq.com"
2) "www.reddit.com"
3) "www.slashdot.com"
redis> SORT website DESC ALPHA            # 字符串降序排序
1) "www.slashdot.com"
2) "www.reddit.com"
3) "www.infoq.com"
redis> SORT website LIMIT 0 2 DESC ALPHA  # 字符串降序排序,并返回前2个结果
1) "www.slashdot.com"
2) "www.reddit.com"
Linux sort 命令将文件进行排序,并将排序结果标准输出。它既可以从特定的文件,也可以从 stdin 中获取输入。sort 玲玲将文件 ...
sort()`方法进行,该方法使用了TimSort算法(一种混合了归并排序和插入排序的算法),它在处理具有局部有序性的数据时表现出色。### ...
假设我们有一个包含整数的列表`List<Integer>numbers`,现在要对其进行倒序排序。sort()这种方法使用Java标准库中的 ...
下面我将介绍几种常见的降序排序方式,包括使用Java标准库、使用第三方库以及使用Java8的StreamAPI。###使用Java标准库Ja ...
pandas 的 dataframe 数据对象有两种的排序方式,一种是根据索引标签(index label)排序,另一种是按照指定某一列的值 ...