Redis學習筆記(五) 排序

2021-07-05 03:32:12 字數 879 閱讀 4021

sort命令可以對列表型別、集合型別和有序集合型別鍵進行排序,並且可以完成與關聯式資料庫中的連線查詢類似的任務。

by引數的語法為by 參考鍵,其中參考鍵可以是字串型別鍵或者是雜湊型別鍵的某個字段(表示為鍵名->欄位名).。如果提供了by引數,sort命令將不再依據元素自身的值進行排序,而是對每個元素使用元素的值替換參考鍵中的第乙個「*」並獲取其值,然後一句該值對元素排序。

get引數不影響排序,它的作用是使sort命令的返回結果不再是元素自身的值,而是get引數中指定的鍵值。get引數的規則和by引數一樣,get引數也支援字串型別和雜湊型別的鍵,並適應「*」作為佔位符。

預設情況下sort命令直接返回排序結果,如果希望儲存排序結果,則可以通過store引數實現。

sort命令是redis中最強大的最複雜的命令之一,如果使用不好很容易成為效能瓶頸。sort命令的時間複雜度是o(n+mlog(m)),其中n表示要排序的列表(集合、有序集合)中的元素個數,m表示要返回的元素個數。當n較大的時候sort命令的效能相對較低,並且redis在排序前會建立乙個長度為n的容器來儲存待排序的元素,雖然是乙個臨時過程,但如果同時進行較多的大資料量排序操作則會嚴重影響效能。

盡可能減少待排序鍵中的元素的數量。

使用limit引數只獲取需要的資料。

如果要排序的資料量較大,盡可能使用store引數將結果快取。

MySQL學習筆記 五 排序查詢

語法 select 查詢列表 from 表where 篩選條件 order by 排序列表 asc desc 特點 1.asc 公升序,desc 降序 不寫預設為公升序 2.order by 子句中支援單個字段 多個字段 表示式 函式 別名 3.order by 子句一般在查詢語句的最後面,limi...

Redis入門 4 排序

很多場合需要對元素進行排序,這時除了使用有序集合外,還可以借助redis提供的sort命令來排序。sort命令可以對列表型別 集合型別和有序集合型別的鍵進行排序。sort key sort key desc sort key alphasort命令會根據元素自身的值進行排序,在對有序集合型別排序時會...

ElasticSearch 學習筆記 9 排序

在 elasticsearch 中,相關性得分 由乙個浮點數進行表示,並在搜尋結果中通過 score 引數返回 預設排序是 score 降序 get search 如果不需要為0分 get search 通過時間來對 tweets 進行排序是有意義的,最新的 tweets 排在最前。我們可以使用 s...