redis的sort命令可以对列表键、集合键或者有序集合键的值进行排序。
SORT命令的实现
SORT
SORT 命令的排序操作由快速排序算法实现。
例子
rpush numbers 5 3 4 1 2
lrange numbers 0 -1 //无排序
sort numbers //排序 正序
ALPHA选择的实现
SORT ALPHA
例子
sadd alphabet a b c d e f g
smembers alphabet //无排序
sort alphabet ALPHA//排序
ASC选项和DESC选项的实现
SORT [ASC|DESC]
BY选项的实现
BY选项默认假设权重键保存的值为数字值,如果权重键保存的是字符串的话,那么就需要在使用BY选项的同时,配合使用ALPHA选项。
zadd test-result 3.0 jack 3.5 peter 4.0 tom
zrange test-result 0 -1
mset peter_number 1 tom_number 2 jack_number 3
sort test-result BY _number
LIMIT选项的实现
通过limit选项,可以让sort命令只返回一部分以及排序的元素。
limit选项的格式为 LIMIT
参数表示要跳过的已经排序的元素数量
参数表示跳过给定数量的已排序元素之后,要返回的已排序元素数量。
GET选项的实现
通过使用get选项,我们可以让sort命令在对键进行排序之后,根据被排序的元素,以及get选项所指定的模式,查找并返回某些键的值
例子
sadd students "peter" "jack" "tom" //
set peter-name "peter white"
set jack-name "jack snow"
set tom-name "tom smith"
sort students ALPHA GET _name //
返回结果
1)"jack snow"
2)"peter white"
3)"tom smith"
SORTE 选项的实现
通过sorte选项,我们可以将排序结果保存在指定的键里面,并在需要时重用这个排序结果。
例子
sort students ALPHA sorte sorted_students
注意:如果sorted_students这个键存在,则会被删除,然后重新设置sorted_students的空白键
多个选项的执行顺序
1.排序(命令会使用ALPHA、[ASC|DESC]、BY选项)
2.限制(limit)
3.获取外部键(get选项)
4.保存排序结果集(sorte选项 )
5.向客户端返回排序结果集
选择的摆放顺序
除了 GET 选项之外, 调整选项的摆放位置不会影响 SORT 命令的排序结果。
内容来自:这本书
action
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0授权协议,
转载请注明来源,谢谢!如本站内容对你有所帮助的话,欢迎订阅关注
邢栋博客,唠嗑(分享)每日的折腾经历。
已有 0 条评论