文章目錄
- zset(有序集合)
- (1)添加成員
- (2)獲取score在指定區間的所有成員
- (3)獲取集合長度
- (4)獲取指定成員的權重值
- (5)獲取指定成員在集合中的排名
- (6)獲取score在指定區間的所有成員數量
- (7)給指定成員增加增加權重值
- (8)刪除成員
- (9)刪除指定數量的成員
zset(有序集合)
有序集合(score/value),去重并且根據score權重值來進行排序的。score從小到大排列。
(1)添加成員
zadd key score1 member1 score2 member2 score3 member3 ....
設置榜單achievements,設置成績和用戶名作為achievements的成員
127.0.0.1:6379> zadd achievements 61 xiaoming 62 xiaohong 83 xiaobai 78 xiaohei 87 xiaohui 99 xiaolan
(integer) 6
127.0.0.1:6379> zadd achievements 85 xiaohuang
(integer) 1
127.0.0.1:6379> zadd achievements 54 xiaoqing
(2)獲取score在指定區間的所有成員
zrangebyscore key min max # 按score進行從低往高排序獲取指定score區間
zrevrangebyscore key min max # 按score進行從高往低排序獲取指定score區間
zrange key start stop # 按scoer進行從低往高排序獲取指定索引區間
zrevrange key start stop # 按scoer進行從高往低排序獲取指定索引區間
zrange achievements 0 -1 # 從低到高全部成員
(3)獲取集合長度
zcard key
獲取users的長度
zcard achievements
(4)獲取指定成員的權重值
zscore key member
獲取users中xiaoming的成績
127.0.0.1:6379> zscore achievements xiaobai
"93"
127.0.0.1:6379> zscore achievements xiaohong
"62"
127.0.0.1:6379> zscore achievements xiaoming
"61"
(5)獲取指定成員在集合中的排名
排名從0開始計算
zrank key member # score從小到大的排名
zrevrank key member # score從大到小的排名
獲取achievements中xiaohei的分數排名,從大到小
127.0.0.1:6379> zrevrank achievements xiaohei
(integer) 4
(6)獲取score在指定區間的所有成員數量
zcount key min max
獲取achievements從0~60分之間的人數[閉區間]
127.0.0.1:6379> zcount achievements 0 60
(integer) 2
127.0.0.1:6379> zcount achievements 54 60
(integer) 2
(7)給指定成員增加增加權重值
zincrby key score member
給achievements中xiaobai增加10分
127.0.0.1:6379> ZINCRBY achievements 10 xiaobai
"93
(8)刪除成員
zrem key member1 member2 member3 ....
從achievements中刪除xiaoming的數據
zrem achievements xiaoming
(9)刪除指定數量的成員
# 刪除指定數量的成員,從最低score開始刪除
zpopmin key [count]
# 刪除指定數量的成員,從最高score開始刪除
zpopmax key [count]
例子:
# 從achievements中提取并刪除成績最低的2個數據
127.0.0.1:6379> zpopmin achievements 2
1) "xiaoqing"
2) "54"
3) "xiaolv"
4) "60"# 從achievements中提取并刪除成績最高的2個數據
127.0.0.1:6379> zpopmax achievements 2
1) "xiaolan"
2) "99"
3) "xiaobai"
4) "93"