Redis 设计与实现(第二版)第四部分:独立功能的实现排序重点回顾
上一篇:SORT <key>...
下一篇:GETBIT 命令的实现
重点回顾
- SORT 命令通过将被排序键包含的元素载入到数组里面, 然后对数组进行排序来完成对键进行排序的工作。
- 在默认情况下, SORT 命令假设被排序键包含的都是数字值, 并且以数字值的方式来进行排序。
- 如果 SORT 命令使用了
ALPHA
选项, 那么 SORT 命令假设被排序键包含的都是字符串值, 并且以字符串的方式来进行排序。 - SORT 命令的排序操作由快速排序算法实现。
- SORT 命令会根据用户是否使用了
DESC
选项来决定是使用升序对比还是降序对比来比较被排序的元素, 升序对比会产生升序排序结果, 被排序的元素按值的大小从小到大排列, 降序对比会产生降序排序结果, 被排序的元素按值的大小从大到小排列。 - 当 SORT 命令使用了
BY
选项时, 命令使用其他键的值作为权重来进行排序操作。 - 当 SORT 命令使用了
LIMIT
选项时, 命令只保留排序结果集中LIMIT
选项指定的元素。 - 当 SORT 命令使用了
GET
选项时, 命令会根据排序结果集中的元素, 以及GET
选项给定的模式, 查找并返回其他键的值, 而不是返回被排序的元素。 - 当 SORT 命令使用了
STORE
选项时, 命令会将排序结果集保存在指定的键里面。 - 当 SORT 命令同时使用多个选项时, 命令先执行排序操作(可用的选项为
ALPHA
、ASC
或DESC
、BY
), 然后执行LIMIT
选项, 之后执行GET
选项, 再之后执行STORE
选项, 最后才将排序结果集返回给客户端。 - 除了
GET
选项之外, 调整选项的摆放位置不会影响 SORT 命令的排序结果。
上一篇:SORT <key>...
下一篇:GETBIT 命令的实现