Redis 排序的格式如下:
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
其中by參數(shù)用于指定排序的字段犀变,默認(rèn)通過本身的hash值進(jìn)行排序铣墨,也可以自己指定字段,包括自己本身的字段和別的key的字段喊暖,常用于一些排名操作辜王。其中*表示通配符劈狐,類似于正則表達(dá)式中的*,->用于連接具體的字段呐馆。例如:
?sort userids ?by 'user_score_*' ?get # get 'user_name_*' get 'user_score_*'
userids 存儲著user的id 1,2,3
user_name_*存儲user姓名 例如 user_name_1 XX ?表示userid為1的姓名
user_score_*存儲user分?jǐn)?shù)?例如 user_score_1 XX? 表示userid為1的分?jǐn)?shù)
這個操作可以通過用戶的分?jǐn)?shù)講用戶的id肥缔,姓名,分?jǐn)?shù)顯示出來
LIMIT參數(shù)用于限制排序以后返回元素的數(shù)量汹来,功能類似于SQL中的limit续膳。該參數(shù)接受另外兩個參數(shù),即offset和count收班,LIMIT offset count表示跳過前offset個元素坟岔,返回之后的連續(xù)count個元素∷よ耄可見稍味,LIMIT參數(shù)可以用于實現(xiàn)分頁功能
GET參數(shù)用于返回指定的字段值穿挨。使用BY參數(shù)對集合中的所有哈希鍵按照哈希結(jié)構(gòu)中的字段排序后鸥滨,SORT命令返回所有排序之后的哈希鍵舍败。如果某個請求需要不是鍵而是某些字段值,這時就要使用GET參數(shù)兄世,使SORT命令返回指定字段值啼辣。
SORT用集合中的每個值(即每個哈希鍵)替換GET參數(shù)之后的第一個“*”,并將其作為返回值碘饼。值得注意的是熙兔,利用GET #能夠得到集合中的哈希鍵本身悲伶。例如用userid中的id替換user_score_的值
ASC和DESC參數(shù)用于指定排序順序(默認(rèn)為ASC,即從低到高)住涉,ALPHA參數(shù)用于按照字典順序排列非數(shù)字元素麸锉。
STORE參數(shù)用于將SORT命令的返回值,即排序結(jié)果存入一個指定的列表舆声。加上STORE參數(shù)后花沉,SORT命令的返回值就變?yōu)榕判蚪Y(jié)果的個數(shù)