* 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?命令的排序結果。
- 介紹
- 前言
- 致謝
- 簡介
- 第一部分:數據結構與對象
- 簡單動態字符串
- SDS 的定義
- SDS 與 C 字符串的區別
- SDS API
- 重點回顧
- 參考資料
- 鏈表
- 鏈表和鏈表節點的實現
- 鏈表和鏈表節點的 API
- 重點回顧
- 字典
- 字典的實現
- 哈希算法
- 解決鍵沖突
- rehash
- 漸進式 rehash
- 字典 API
- 重點回顧
- 跳躍表
- 跳躍表的實現
- 跳躍表 API
- 重點回顧
- 整數集合
- 整數集合的實現
- 升級
- 升級的好處
- 降級
- 整數集合 API
- 重點回顧
- 壓縮列表
- 壓縮列表的構成
- 壓縮列表節點的構成
- 連鎖更新
- 壓縮列表 API
- 重點回顧
- 對象
- 對象的類型與編碼
- 字符串對象
- 列表對象
- 哈希對象
- 集合對象
- 有序集合對象
- 類型檢查與命令多態
- 內存回收
- 對象共享
- 對象的空轉時長
- 重點回顧
- 第二部分:單機數據庫的實現
- 數據庫
- 數據庫鍵空間
- 重點回顧
- RDB 持久化
- RDB 文件結構
- 重點回顧
- AOF 持久化
- AOF 持久化的實現
- 重點回顧
- 事件
- 文件事件
- 重點回顧
- 參考資料
- 客戶端
- 客戶端屬性
- 重點回顧
- 服務器
- 命令請求的執行過程
- 重點回顧
- 第三部分:多機數據庫的實現
- 復制
- 舊版復制功能的實現
- 重點回顧
- Sentinel
- 啟動并初始化 Sentinel
- 重點回顧
- 參考資料
- 集群
- 節點
- 重點回顧
- 第四部分:獨立功能的實現
- 發布與訂閱
- 頻道的訂閱與退訂
- 重點回顧
- 參考資料
- 事務
- 事務的實現
- 重點回顧
- Lua 腳本
- 創建并修改 Lua 環境
- 重點回顧
- 排序
- SORT <key> 命令的實現
- 重點回顧
- 二進制位數組
- GETBIT 命令的實現
- 重點回顧
- 慢查詢日志
- 慢查詢記錄的保存
- 慢查詢日志的閱覽和刪除
- 添加新日志
- 重點回顧
- 監視器
- 成為監視器
- 向監視器發送命令信息
- 重點回顧
- 源碼、相關資源和勘誤