redis的sort命令实践【应用场景待实践】

文章目录

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

string

  • 利用set对list排序
127.0.0.1:6379> lpush uid 1 2 3 4
(integer) 4
127.0.0.1:6379> set uid-1 25
OK
127.0.0.1:6379> set uid-2 2
OK
127.0.0.1:6379> set uid-3 3
OK
127.0.0.1:6379> set uid-4 29
OK
127.0.0.1:6379> sort uid by uid-*
1) "2"
2) "3"
3) "1"
4) "4"
127.0.0.1:6379> sort uid by uid-* get uid-*
1) "2"
2) "3"
3) "25"
4) "29"

list

list原生是根据插入顺序来排除先后的,但是我们也可以使用sort来进行排序

  • 如果list中全部是数字
127.0.0.1:6379> lpush sort_list_num 1 11 111 3 333 34 2 22
(integer) 8
127.0.0.1:6379> lrange sort_list_num 0 -1
1) "22"
2) "2"
3) "34"
4) "333"
5) "3"
6) "111"
7) "11"
8) "1"
# 插入顺序
27.0.0.1:6379> sort sort_list_num
1) "1"
2) "2"
3) "3"
4) "11"
5) "22"
6) "34"
7) "111"
8) "333"
127.0.0.1:6379> sort sort_list_num desc 
1) "333"
2) "111"
3) "34"
4) "22"
5) "11"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> sort sort_list_num asc limit 0 3   -- limit进行分页 【起始偏移量+要返回的数量】
1) "1" 
2) "2"
3) "3"
127.0.0.1:6379> sort sort_list_num asc limit 3 4
1) "11"
2) "22"
3) "34"
4) "111"

  • 如果list中全部是字符串
127.0.0.1:6379> lpush sort_list_string alphaer cidy jimi bery dear
(integer) 5
127.0.0.1:6379> lrange sort_list_string 0 -1
1) "dear"
2) "bery"
3) "jimi"
4) "cidy"
5) "alphaer"

字符串排序的话,要加上alpha修饰符

127.0.0.1:6379> sort sort_list_string
(error) ERR One or more scores can't be converted into double
127.0.0.1:6379> sort sort_list_string alpha
1) "alphaer"
2) "bery"
3) "cidy"
4) "dear"
5) "jimi"
127.0.0.1:6379> sort sort_list_string alpha desc
1) "jimi"
2) "dear"
3) "cidy"
4) "bery"
5) "alphaer"
127.0.0.1:6379> sort sort_list_string alpha asc
1) "alphaer"
2) "bery"
3) "cidy"
4) "dear"
5) "jimi"

总结:sort可以对一个键的所有值进行排序。

具体可以参考:https://www.cnblogs.com/xujishou/p/6423453.html

猜你喜欢

转载自blog.csdn.net/zhizhengguan/article/details/88296190