redis 有序集合zset和集合set一樣也是string類型元素的集合,且不允許重復的成員。
不同的是 zset 的每個元素都會關聯一個分數(分數可以重復),redis 通過分數來為集合中的成員進行從小到大的排序。
A、zadd
語法:zadd key score member [score member…]
作用:將一個或多個 member 元素及其 score 值加入到有序集合 key 中,如果 member
存在集合中,則更新值;score 可以是整數或浮點數
返回值:數字,新添加的元素個數
例 1:創建保存學生成績的集合
例 2:使用浮點數作為 score
B、 zrange
語法:zrange key start stop [WITHSCORES]
作用:查詢有序集合,指定區間的內的元素。集合成員按 score 值從小到大來排序。 start,
stop 都是從 0 開始。0 是第一個元素,1 是第二個元素,依次類推。以 -1 表示最后一個成員,-2 表示倒數第二個成員。WITHSCORES 選項讓 score 和 value 一同返回。
返回值:自定區間的成員集合
例 1:顯示集合的全部元素,不顯示 score,不使用 WITHSCORES
例 2:顯示集合全部元素,并使用 WITHSCORES
例 3:顯示第 0,1 二個成員
例 4:排序顯示浮點數的 score
C、 zrevrange
語法:zrevrange key start stop [WITHSCORES]
作用:返回有序集 key 中,指定區間內的成員。其中成員的位置按 score 值遞減(從大到小) 來排列。其它同 zrange 命令。
返回值:自定區間的成員集合
例 1:成績榜
D、zrem
語法:zrem key member [member…]
作用:刪除有序集合 key 中的一個或多個成員,不存在的成員被忽略
返回值:被成功刪除的成員數量,不包括被忽略的成員。
例 1:刪除指定一個成員 wangwu
E、 zcard
語法:zcard key
作用:獲取有序集 key 的元素成員的個數
返回值:key 存在返回集合元素的個數, key 不存在,返回 0
例 1:查詢集合的元素個數
A、zrangebyscore
語法:zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]
作用:獲取有序集 key 中,所有 score 值介于 min 和 max 之間(包括 min 和 max)的成員,有序成員是按遞增(從小到大)排序。
min ,max 是包括在內 , 使用符號 ( 表示不包括。 min , max 可以使用 -inf
+inf 表示最小和最大
limit 用來限制返回結果的數量和區間。
withscores 顯 示 score 和 value
返回值:指定區間的集合數據
使用的準備數據
例 1:顯示指定具體區間的數據
例 2:顯示指定具體區間的集合數據,開區間(不包括 min,max)
例 3:顯示整個集合的所有數據
例 4:使用 limit
增加新的數據:
顯示從第一個位置開始,取一個元素。
B、 zrevrangebyscore
語法:zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]
作用:返回有序集 key 中, score 值介于 max 和 min 之間(默認包括等于 max 或 min )的所有的成員。有序集成員按 score 值遞減(從大到小)的次序排列。其他同 zrangebyscore
例 1:查詢工資最高到 3000 之間的員工
C、 zcount
語法:zcount key min max
作用:返回有序集 key 中, score 值在 min 和 max 之間(默認包括 score 值等于 min 或 max )的成員的數量
例 1:求工資在 3000-5000 的員工數量