Redis的sort排序命令

240 阅读2分钟

「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战

Redis顺序排序命令

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

# 排序

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

排序键指示理论是设立一个和戒指的下表宽度相近的链表,链表的每个项都是再分派目标构造,根据分类法指示的模块有所不同再分派目标的构造也有所不同

管理器是

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

obj指向确切的下表元素值,分数值是列表项的数值的浮点,然后根据积分的数值对链表展开字符尺寸的顺序,然后将顺序之后的结论回到给顾客端

其他选项模块展开顺序

分类法指示管理器按字符展开顺序,需字符串值的键排序的时,插入阿尔法选项

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

指示模块的次序

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

除了接到指示之外,其他指示模块的先后顺序对结果集没冲击

好了,今天内容主要讲解了一下redis的sort排序指令以及它的各个参数,比如asc选项是升序的意思,desc降序,limit对排序后的结果限制,by选项按照字符串的键权重排序,get选项从结果出取出相应的键值,store选项是将排序结果保存到指定键,sort key命令原理是创建一个和key的列表长度相同的数组,数组的每个项都是redisSortObject结构,根据sort命令的选项不同redisSortObject的结构也不同。