對于Redis SORT排序命令 我相信大家都不怎么了解了,因此小編整理了一些Redis SORT排序命令使用方法與例子,希望例子可以對各位玩家帶來幫助哦.
Redis SORT是由Redis提供的一個排序命令。集合中的標簽是無序的,可以使用SORT排序。如:
redis>SADD jihe 5
(integer) 1
redis>SADD jihe 1
(integer) 1
redis>SADD jihe 2
(integer) 1
redis>SADD jihe 8
(integer) 1
redis>SORT jihe
1) "1"
2) "2"
3) "5"
4) "8"
如果使用Redis SORT排序的不是數字,是字母,將他們按照字典的順序排名,則需要使用
SORT jihe ALPHA
如果不加ALPHA參數,則會報錯,提示:(error) ERR One or more scores can't be converted into double。我們還可以使用關系型數據庫的DESC進行倒序排序和LIMIT offset count來限定獲取的條數
SORT jihe DESC LIMIT 0 2
還可以對Redis SORT命令添加BY參數。一條語句只能有一個BY參數。這時,SORT不會根據自身的值排序,比如(1,5,2,8和a,A,g,B),而是根據指定的另一個鍵中的字段來排序。如:
SORT tag:redis:article BY article:*->time DESC
解釋:根據tag:redis:article中的值(tag是redis的文章ID),來組合成一個新的key就是article:(ag:redis:article中的一個值):time。獲取到tag是redis的文章ID列表,然后根據他們的發布時間來排序。
Redis SORT命令還有個GET參數,GET參數類似在關系型數據庫中的關聯查詢。比如查詢tag是redis的文章ID列表,將列表根據發布時間倒序排序,然后獲取每個文章的標題。GET可以有多個:
SORT tag:redis:article BY article:*->time DESC GET article:*->title GET article:*->time GET #
GET #的意思是,將文章ID返回回來,你可以寫GET article:*->id,也可以寫GET #。
Redis SORT命令還有個參數是STORE,是將排序后的內容存儲到一個新的key中。新key的類型是列表類型,如果存在則會覆蓋。這個時候可以用EXPIRE來設置緩存:
SORT tag:redis:article BY article:*->time DESC GET article:*->title GET article:*->time GET # STORE resultKey
Redis的SORT命令是Redis最復雜最強大的命令之一,時間復雜度是O(n+mLOGm)。n是待排序的列表長度,m是返
補充:
1,適合全體類型的命令
EXISTS key 判斷一個鍵是否存在;存在返回 1;否則返回0;
DEL key 刪除某個key,或是一系列key;DEL key1 key2 key3 key4
TYPE key 返回某個key元素的數據類型 ( none:不存在,string:字符,list,set,zset,hash)
KEYS pattern 返回匹配的key列表 (KEYS foo*:查找foo開頭的keys)
RANDOMKEY 隨機獲得一個已經存在的key,如果當前數據庫為空,則返回空字符串
RENAME oldname newname更改key的名字,新鍵如果存在將被覆蓋
RENAMENX oldname newname 更改key的名字,如果名字存在則更改失敗
DBSIZE返回當前數據庫的key的總數
EXPIRE設置某個key的過期時間(秒),(EXPIRE bruce 1000:設置bruce這個key1000秒后系統自動刪除)注意:如果在還沒有過期的時候,對值進行了改變,那么那個值會被清除。
新聞熱點
疑難解答