SORT
- 按照鍵值從小到大或者從大到小的順序進行排序
-
對數字進行排序
語法:SORT key [DESC]
默認情況下,是升序排序,可以指定DESC進行降序排序
-
對字母進行排序
語法:SORT key ALPHA [DESC]
默認情況下,是升序排序,可以指定DESC進行降序排序
-
使用LIMIT限制返回的數量
語法: LIMIT offset number
offset是偏移量
number是限制的數量 -
根據外部的key的權重進行排序
LPUSH uid 1 SET user_name_1 admin1 SET user_level_1 999 LPUSH uid 2 SET user_name_2 admin2 SET user_level_2 99 LPUSH uid 3 SET user_name_3 admin3 SET user_level_3 900 LPUSH uid 4 SET user_name_4 admin4 SET user_level_4 299 LPUSH uid 5 SET user_name_5 admin5 SET user_level_5 478 # 默認是根據uid升序排序 SORT uid # 根據用戶的級別進行排序 # 執行順序是,首先找出uid,然后將其逐個對應到user_level_*上面, # 按照user_level_*的值進行排序,返回uid SORT uid BY user_level_*
-
根據排序結果取出相應的鍵值
# 先根據uid進行排序,再將uid對應到user_name_*上面,返回user_name_* SORT uid GET use_name_* # 先按照user_level排序, 再獲取user_name SORT uid BY user_level_* GET user_name_* # 先根據uid進行排序,再同時獲取用戶名和等級 SORT uid GET user_name_* GET user_level_* # 使用"#"獲取編號 SORT uid GET # GET user_level_* GET user_level_* # 當BY對象不存在時,就不排序 SORT uid BY noExists GET # GET user_level_* GET user_name_*
-
注意
SORT命令的時間復雜度是O(n+mlogm)
n表示要排序的列表或者集合中的元素的個數,m表示要返回元素的個數
- 盡可能減少待排序中鍵的個數(使n減少)
- 使用LIMIT參數限制獲取元素的個數(使m減少)
- 大量排序時,通過STORE緩存結果