Redis中的排序sort

Redis中的排序sort

        Redis的SORT命令可以对列表键、集合键或者有序集合键的值进行排序。

        SORT命令对number列表元素排序


        使用ALPHA选项对一个包含字符串值的集合键进行排序



SORT命令的实现

        SORT命令的最简单执行形式为:

        SORT

        这个命令可以对一个包含数字键key进行排序。如上面第一个例子所示。

        服务器执行SORT numbers命令的详细步骤如下:






ALPHA选项的实现

        通过使用ALPHA选项,SORT命令可以对包含字符串值的键进行排序

        服务器执行步骤如下:



ASC选项和DESC选项的实现

        默认情况,SORT命令执行升序排序,排序后的结果按照值的大小从小到大排列,

        SORT 和 SORT ASC命令的执行结果一样

        执行SORT命令时使用DESC选项,可以让命令执行降序排序,让排序后的结果按值的大小从大到小排列。



BY选项的实现

        在默认情况下,SORT命令使用被排序键包含的元素作为排序的权重,元素本身决定了元素在排序后所处的位置。


        通过BY选项,SORT命令可以指定某些字符串键,或者某个哈希键所包含的某些域(filed)来作为元素的权重,对一个键进行排序。下面的例子就是按照水果的价钱排序:




带有ALPHA选项的BY选项的实现

        BY选项默认假设权重键保存的值为数字值,如果权重键保存的是字符串值的话,就需要在使用BY选项时,配合使用ALPHA选项。


        使用水果编号为权重对fruits集合进行排序:



LIMIT选项的实现

        在默认情况下,SORT命令总会将排序后的所有元素都返回给客户端

        使用LIMIT选项,我们可以让SORT命令只返回其中一部分已排序的元素。

LIMIT

        offset表示要跳过已排序元素数量

        count表示跳过给定数量的已排序元素之后,要返回的已排序元素数量。


GET选项的实现

        默认情况下,SORT命令在对键进行排序之后,总是返回被排序键本身所包含的元素。

        通过使用GET选项,我们可以让SORT命令返回GET选项所指定模式对应的某些键的值。




STORE选项的实现

        默认情况,SORT命令只返回排序结果,不保存排序结果。

        通过使用STORE选项,我们可以将排序结果保存在指定的键里面,并在有需要时重用这个排序结果。




多个选项的执行顺序

        按照选项来划分的话,一个SORT命令的执行过程可以分为以下五步:


        在以上这些步骤中,后一个步骤必须在前一个步骤完成之后进行。

        举个例子:


总结:


你可能感兴趣的:(Redis)