Redis sort排序指令

Posted 周杰伦本人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis sort排序指令相关的知识,希望对你有一定的参考价值。

@[TOC]

Redis sort排序指令

redis> LPUSH today_cost 30 1.5 10 8
(integer) 4

# 排序

redis> SORT today_cost
1) "1.5"
2) "8"
3) "10"
4) "30"

原理

sort key命令原理是创建一个和key的列表长度相同的数组,数组的每个项都是redisSortObject结构,根据sort命令的选项不同redisSortObject的结构也不同

默认是

typedef struct _redisSortObject 
    robj *obj;
    union 
        double score;
        robj *cmpobj;
     u;
 redisSortObject;

obj指向具体的列表元素值,score值是列表项的值的浮点数,然后根据score的值对数组进行数字大小的排序,然后将排序后的结果返回给客户端

其他选项进行排序

sort命令默认按数字进行排序,需要字符串值的键排序的时候,添加ALPHA选项

asc选项是升序,desc选项是降序,limit选项是对排序后的结果进行限制,by选项是可以安装某些字符串的键或者哈希键包含的域作为元素的权重来进行排序,get选项是根据排序结果取出响应的键值,store选项是对排序结果进行保存到指定的键中

命令选项的顺序

这几个选项的执行顺序先是排序,然后是limit选项,限制排序结果长度,然后是get选项获取外部键,然后是store选项进行结果集的保存。

除了get命令外,其他命令选项的先后顺序对结果集没有影响

总结

这篇文章讲了redis的sort排序指令,包括他的一些命令的选项的功能和顺序。

以上是关于Redis sort排序指令的主要内容,如果未能解决你的问题,请参考以下文章

Java中对数组升序排列用Arrays.sort( )方法,那降序排列用啥方法?

java Collections.sort实现的排序是升序还是降序

unity3dC#的List升序降序排序

集合-Java中Arrays.sort()自定义数组的升序和降序排序

sort和sorted深入理解----引子:多维列表,如何实现第一个元素升序,第二个元素降序

pytorch :使用两次sort函数(排序)找出矩阵每个元素在升序或降序排列中的位置