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 命令的实现