Redis 資料庫之有序集合(zset)

yangqinghua1992發表於2017-01-14

有序集合(sortedset)

  • Sorted-Set 和 Set 型別極為相似,它們都是字串的集合,都不允許重複的成員出現在一個 Set 中。它們之間的主要差別是 Sorted-Set 中的每一個成員都會有一個分數(score)與之關聯,Redis 正是通過分數來為集合中的成員進行從小到達的排序。儘管 Sorted-Set 中的成員必須是唯一的,但是分數(score)卻是可以重複的。

儲存(zadd)

zadd key score1 member1 score2 member2 ...

  • 新增成員及成員分數到 key 中,如果該成員已經存在,則更新該成員的分數。
    這裡寫圖片描述

獲取分數(zscore)

zscore key member

  • 獲得 member 的分數。
    這裡寫圖片描述

獲取集合數量(zcard)

zcard key

這裡寫圖片描述


刪除(zrem)

zrem key member1 member2 ...

  • 刪除一個或多個成員。
    這裡寫圖片描述

範圍查詢(zrange)

zrange key start end [withscores]

  • 獲取索引從 start(包含) 到 end(包含) 的成員,end 可以是負數,-1 表示最後一個,-2 表示倒數第二個,以此類推。
  • [widthscores]指示返回的成員具有分數。
    這裡寫圖片描述

降序查詢(zrevrange)

zrevrange key start end [withscore]

  • 查詢 start 到 end 的成員並反轉,實現降序查詢。
    這裡寫圖片描述

按照排名範圍刪除(zremrangebyrank)

zremrangebyrank key start end

  • 刪除集合中索引從 start(包含) 到 end(包含) 的元素。
    這裡寫圖片描述

按照分數刪除(zremrangebyscore)

zremrangebyscore key minScore maxScore

  • 刪除集合中分數從 minScore(包含) 到 maxScore(包含) 的元素。
    這裡寫圖片描述

根據分數範圍查詢(zrangebyscore)

zrangebyscore key minScore maxScore [withscore] [limit offset count]

  • 根據指定的分數範圍查詢成員,可以用 limit 指定顯示記錄的條數。
    這裡寫圖片描述

為指定成員增加分數(zincrby)

zincrby key increment member

  • 為指定的成員增加指定的分數,返回值是更新後的分數。
    這裡寫圖片描述

獲取指定分數區間的成員數量(zcount)

zcount key minScore maxScore

  • 獲得分數在 minScire(包含) 到 maxScore(包含) 的成員數量。
    這裡寫圖片描述

獲取成員排名(zrank)(zrevrange)

zrank key member
zrevrank key member

  • 獲取成員的升序或降序排名,排名從0開始計算。
    這裡寫圖片描述

相關文章