码迷,mamicode.com
首页 > 编程语言 > 详细

redis 排序命令

时间:2018-09-16 23:58:15      阅读:385      评论:0      收藏:0      [点我收藏+]

标签:顺序   报错   自身   集合排序   元素   操作   意义   常见   alpha   

排序 sort

redis基本命令--集合(set)类型 中,我们提到过有序集合。有序集合常见的场景是大数据排序

除了有序集合外,我们可以借助redis的sort命令来排序。

lpush mylist 4 2 6 1 3 7
sort mylist

在对有序集合排序的时候会忽略元素的分数,之针对元素自身的值进行排序

zadd myzset 50 2 40 3 20 1 60 5
sort myzset
## 结果是 1 2 3 5;分数 50 ..会被忽略

sort 命令还可以通过 ALPHA 参数实现按照字典顺序排列非数字元素:

lpush mylistalpha a c e d B C A 
sort mylistalpha
## 这一步会报错。因为sort会试图将元素转成浮点数,但是转换失败
sort mylistalpha alpha
## 实测结果:1) "a"2) "A"3) "B"4) "c"5) "C"6) "d"7) "e
## 理论结果为 A B C a c d e 

sort命令可以逆序排序:

sort mylist desc

sorrt 分页; sort 可以和 limit 组合使用

sort mylist limit 1 2

上面结果表示对 mylist 排序后,从第2位取2个元素

by 参数/参考键

lpush sortbylist 2 1 3 
set itemscore:1 50
set itemscore:2 100
set itemscore:3 -10
## 根据得分逆序排序:结果为 2 1 3
sort sortbylist by itemscore:* desc

当参考键不包括 "*" 时,sort 命令讲不会执行排序操作,因为redis 认为这是没有意义的。

当某个参考键不存在的时候,回默认参考键的值为 0

lpush sortbylist 5 
sort sortbylist by itemscore:* desc
# 结果为 2 4 1 5 3;5的参考键不存在,默认为 > 3 的 -10

redis 排序命令

标签:顺序   报错   自身   集合排序   元素   操作   意义   常见   alpha   

原文地址:https://www.cnblogs.com/lliule/p/9657967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!