21 排序
SORT命令可以对列表键、集合键或有序集合键的值进行排序
核心思想:按照某个属性,对数组进行排序
21.1 SORT < key >命令的实现
SORT命令的最简单形式:SORT < key >,可以对一个包含数字值的键key进行排序
以RPUSH numbers 3 1 2;SORT numbers为例讲解实现原理:
redisSortObject结构:
21.2 ALPHA选项的实现
通过使用SORT < key > ALPHA,可以对包含字符串值的键进行排序
以SADD fruits apple banana cherry;SORT fruits ALPHA为例讲解实现原理:
21.3 ASC选项和DESC选项的实现
默认情况下为ASC,升序,DESC为降序
实现:都是快排,区别在于算法使用的对比函数相反而已
以RPUSH numbers 3 1 2;SORT numbers;SORT numbers ASC为例:
21.4 BY选项的实现
默认情况下使用被排序键包含的元素作为排序的权重,通过使用BY选项,可以指定某些字符串键,或者某个哈希键所包含的某些域(field)来作为元素的权重进行排序
以集合键+数字值权重为例讲解实现原理:
21.5 带有ALPHA选项的BY选项的实现
BY选项默认假设权重键保存的值为数字值
配合ALPHA,则权重键可以保存字符串值
以集合键+字符串权重为例讲解实现原理: