Redis命令拾遺五(有序集合)

2022-01-15 22:35:51 字數 1691 閱讀 9279

sorted set

有序集合—sorted set是我最後要分享的一種redis資料型別,有序集合在集合的基礎上,為每乙個元素,關聯了乙個分數的概念(score)。不要忘了,集合中元素是唯一的,但是有序集合中的score是可以相同的。

下面通過命令的介紹,來幫助大家認識有序集合。

新增命令,zadd  key score member score member....注意分數是在前面喲。並且成功後返回成功數量。如果你同時新增兩個相同元素,並且分數不同,那麼被存入的,是後者。

獲取元素,zrange key start stop.在有序集合中,元素以score由小到大排序,並且索引從0開始。獲取全部,0 -1(最後面的元素索引是-1),和列表一樣,start索引要大於stop索引才能獲取到元素。另外還有乙個可選引數,withscores,會相應的輸出元素的分數。

另外還有zrevrange,按照score從大到小的順序輸出。

score支援雙精度浮點數。

zrangebyscore和zrevrangebyscore。前者按照分數由小到大,並且給定分數範圍,withscores是可選引數。limit也是可選引數,索引從0開始。後者則是由大到小。

另外需要特別注意的一點是,分數的篩選支援正無窮,和不包含『(』符號。我們看到結果中,並沒有95分的leijun。並且到正無窮。

zscore,獲取指定key中指定元素的score。

zinctby ,為指定鍵下的指定member,增加指定的 分數。我們給leijun增加了10分,返回105了。

zcard,獲取鍵下元素個數。我們看到有七個學生哈。

zcount ,獲取制定分數區間,元素個數,注意分數篩選,也支援『(』不包含選擇符。

zrem,移除元素。

zremrangebyscore,按照分數範圍刪除多個元素。

zremrangebyrank,按照正常由小到大的排名順序刪除,又有兩個分數低的被刪掉了。

zrank,獲取指定元素的排名。從0開始。zrevrank則相反

不足之處,歡迎補充和交流。

最後再簡單總結有序集合和列表。有序集合和列表都是有序的,並且可以按照範圍來獲取元素。
而有序集合使用跳躍表和雜湊表實現,其時間複雜度o(log(n)),所以取中間元素也很快。並且有序集合可以通過更改分數,來調整元素的位置。有序集合也更耗費記憶體。

Vim命令拾遺

ctrl b backward 向上翻一頁,ctrl f forward 向下翻一頁 ctrl d down 向下滾半屏,ctrl u up 向上滾半屏 以段落為單位,向下翻動 以上兩命令在使用時需要按住shift鍵,因為大括號所在的鍵位還有乙個中括號 sp 水平分割 vsp 垂直分割 diffs ...

linux 命令拾遺

這個命令會列印出八進位制 十六進製制和十進位制的ascii碼表。xxd可以生成所給與檔案的十六進製制拷貝,也可以將編輯好的十六進製制拷貝還原成二進位制格式。它也可以將十六進製制拷貝輸出成c的陣列 隨機從乙個檔案或資料夾中選擇行 檔案 資料夾 產生從某個數到另外乙個數之間的所有整數 timeout 執...

git命令拾遺

要隨時掌握工作區的狀態,使用git status命令。如果git status告訴你有檔案被修改過,用git diff可以檢視修改內容。head指向的版本就是當前版本,因此,git允許我們在版本的歷史之間穿梭,使用命令git reset hard commit id。head head 穿梭前,用g...