有序集合存儲着成員和分值之間的映射,並且提供了分值處理命令,以及根據分值大小有序的獲取或掃描成員和分值的命令
(常用命令)
ZADD : ZADD key-name score member [score member ...] ------------將帶有給定分值的成員添加到有序集合里
ZREM : ZREM key-name member [member ...] --------------------------從有序集合里移除給定的成員,並返回被移除成員的數量
ZCARD : ZCARD key-name ------------------------------------------------返回有序集合包含的成員數量
ZINCRBY : ZINCRBY key-name increment member --------------------將member成員的分值加上increment
ZCOUNT : ZCOUNT key-name min max ---------------------------------返回分值介於min和max之間的成員數量
ZRANK : ZRANK key-name member ------------------------------------返回成員member在有序集合中的排名
ZSCORE : ZSCORE key-name member --------------------------------返回成員member的分值
ZRANGE : ZRANGE key-name start stop [WITHSCORE] ------------返回有序集合中排名介於start和stop之間的成員,如果給定了可選的WITHSCORE選項,那么命令會將成員的分值也一並返回
>>> conn.zadd('zset-key','a',3,'b',2,'c',1) 3 >>> conn.zcard('zset-key') 5 >>> conn.delete('zset-key') 1 >>> conn.zadd('zset-key','a',3,'b',2,'c',1) 3 >>> conn.zcard('zset-key') 3 >>> conn.zincrby('zset-key','c',3) 4.0 >>> conn.zscore('zset-key','b') 2.0 >>> conn.zrank('zset-key','c') 2 >>> conn.zcount('zset-key',0,3) 2L >>> conn.zrem('zset-key','c') 1 >>> conn.zrange('zset-key',0,-1,withscores=True) [('b', 2.0), ('a', 3.0)]
(有序集合在一定范圍內獲取數據和刪除數據命令,以及並集和交集命令)
ZREVRNK : ZREVRANK key-name member --------------返回有序集合里成員member的排名,成員按照分值從大到小排列
ZREVRANGE : ZREVRANGE key-name start stop [WHISTSCORES] -----------返回有序集合給定排名范圍內的成員,成員按照分值從大到小排列
ZRABGEBYSCORE : ZRABGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] --------返回有序集合中,分值介於min和max之間的所有成員
ZREVRANGEBYSCORE : ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] -----獲取有序集合中分值介於min和max之間的所有成員,並按照分值從大到小的順序返回它們
ZREMRANGEBYRANK : ZREMRANGEBYRANK key-name start stop ---------------------移除有序集合中排名介於start和end之間的所有成員
ZREMRANGEBYSCORE : ZREMRANGEBYSCORE key-name min max -------------------移除有序集合中分值介於min和max之間的所有成員
ZINTERSTORE : ZINTERSTORE dest-key key-count key [key...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]--------------對給定的有序集合執行類似於集合的交集運算
ZUNIONSTORE : ZUNIONSTORE dest-key key-count key [key...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]--------------對給定的有序集合執行類似於集合的並集運算
>>> import redis >>> conn = redis.Redis(host='192.168.146.129',port=6379,db=0) >>> conn.zadd('zset-1','a',1,'b',2,'c',3) 3 >>> conn.zadd('zset-2','b',4,'c',1,'d',0) 3 >>> conn.zinterstore('zset-i',['zset-1','zst-2']) 0L >>> conn.zinterstore('zset-i',['zset-1','zset-2']) 2L >>> conn.zrange('zset-i',0,-1,withscores=True) [('c', 4.0), ('b', 6.0)] >>> conn.zunionstore('zset-u',['zset-1','zset-2'],aggregate='min') 4L
