Redis有序集合操作


有序集合存儲着成員和分值之間的映射,並且提供了分值處理命令,以及根據分值大小有序的獲取或掃描成員和分值的命令

(常用命令)

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM