Redis有着list、set、zset等数据类型,对数据进行存储时非常方便,这些数据类型也有着许多功能强大的操作命令,但是其返回结果是无序的,而Redis中的排序命令(sort)则可以对list、set、zset等类型的key进行排序,可以实现与关系数据库中查询类似的功能。
命令:sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
sort key [ASC|DESC]
使用纯数字的list来解释下这个命令,默认情况下按照数字的升序排序
127.0.0.1:6379> lpush list 22 51 13 80
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "80"
2) "13"
3) "51"
4) "22"
127.0.0.1:6379> sort list
1) "13"
2) "22"
3) "51"
4) "80"
127.0.0.1:6379> sort list desc
1) "80"
2) "51"
3) "22"
4) "13"
[ALPHA]
对于元素不全是数字的数据类型来说,想要使用sort命令排序必须加上 [ALPHA],默认情况是数字在前(数组升序),字母按照升序排列。
127.0.0.1:6379> lpush list1 sss stop aaa 12 39
(integer) 5
127.0.0