redis高階命令

2021-06-22 12:24:08 字數 1594 閱讀 4163

sort 命令

1 修飾符  desc  降序排列

2 允許元素按照字段序列排序  alpha ,此時的排序相當於字串排序, 數字轉化為字元 12 排在 2 的前面

3 可以指定避開某些元素,然後開始排序,並返回前n個, 語法為 sort key skip count  。 

比如 sort list 3 10 表示大於3 的元素的10個。

4 sort list limit 0 3 alpha desc 組合可以。

5 可以為多個key 按照權重排序, 以如下為例

set weight_2  300

set weight_3   200

set weight_1   100

rpush mylist  3 2 1

排序命令: sort mylist by weight_* , 就會把mylist的每個元素取出來,替換*,然後排序weight_1 2 3 。

結果為:  1 2 3 。

可以用get 命令取得權重值: sort mylist by weight_* get weight_* 

結果為: 100 200 300 

還可以將元素與權重值都取出來存入指定目的地dest_list(儲存命令為: store, 取得序號本身: get #)

sort mylist by weight_* get # get weight_* store dest_list 

lrange dest_list 0 -1 

結果為: 1 100 2 200 3 300 

6 可以根據hash表中某個field欄位的值排序。

hset user1 score 80

hset user2 score 70

hset user3 score 90

sort mylist by user_*->score  desc ---> 3 1 2

sort mylist by user_*->score get user_*->score desc ----> 90 80 70 

redis 127.0.0.1:6378> hmset user1 score 80 age 10 name wangfeng ok

redis 127.0.0.1:6378> hmset user2 score 70 age 12 name lixiang ok

redis 127.0.0.1:6378> hmset user3 score 90 age 11 name liuben ok

redis 127.0.0.1:6378> sort mylist by user*->score get # get user*->score get user*->name get user*->age

1) "2"

2) "70"

3) "lixiang"

4) "12"

5) "1"

6) "80"

7) "wangfeng"

8) "10"

9) "3"

10) "90"

11) "liuben"

12) "11"

最後說明一下,如果mylist中元素比我們要比較的多,可以採用limit 引數來跳過一些數值。

Redis 高階命令

keys 返回滿足給定模糊匹配的所有key。keys my 匹配所有my開頭的所有key exists 確認乙個key是否存在。返回0 1 exists name 是否存在key為name的key.del 刪除乙個key。返回0 1 del age 刪除age的key。1 表示刪除成功。persis...

Redis的高階命令

返回滿足所有鍵key 可以模糊匹配 exists是否存在指定的key expire設定某個key的過期時間,使用ttl檢視剩餘時間 persist取消過期時間 select選擇資料庫 資料庫為0到15 一共16個資料庫 預設進入的是0資料庫 move key 資料庫下標 將當前資料中的key轉移到其...

Redis高階高階(二)

一 訊息通知 在一些 上,經常會有一些發布 訂閱或者郵件訂閱的功能,尤其一些部落格上。其實這種問題很常見,當頁面需要進行如傳送郵件 複雜的計算時會阻塞頁面的渲染。為了避免使用者等待太久,應該使用其他程序單獨完成此類操作,這裡郵件訂閱可以用任務佇列來實現,具體來說,當需要傳送郵件時,將其存入佇列中,另...