#### Python操作Redis之有序集合
```python
import redis??# 導(dǎo)入redis模塊
# 建議使用以下連接池的方式
# 設(shè)置decode_responses=True良姆,寫(xiě)入的KV對(duì)中的V為string類(lèi)型蚜锨,不加則寫(xiě)入的為字節(jié)類(lèi)型酸役。
pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=0, decode_responses=True)
rs = redis.Redis(connection_pool=pool)
# 增加集合元素寸爆,如集合不存在則新建
rs.zadd('fruits', {'apple':1, 'banana':3, 'orange':5})
# 遍歷所有元素
print(rs.zrange("fruits", 0, -1))????#結(jié)果:['apple', 'banana', 'orange']
# withscores=True指帶上分?jǐn)?shù)
print(rs.zrange("fruits", 0, -1, withscores=True))???#結(jié)果:[('apple', 1.0), ('banana', 3.0), ('orange', 5.0)]
# 根據(jù)分?jǐn)?shù)由大到小遍歷所有元素
print(rs.zrevrange("fruits", 0, -1))???#結(jié)果:['orange', 'banana', 'apple']
# 獲取orange元素對(duì)應(yīng)的分?jǐn)?shù)
rs.zscore('fruits', 'orange')?????#結(jié)果:5.0
# 取出分?jǐn)?shù)>=3 and 分?jǐn)?shù)<=5的元素
print(rs.zrangebyscore('fruits', 3, 5))
# 取出分?jǐn)?shù)<=5 and 分?jǐn)?shù)>=3的元素找颓,根據(jù)分?jǐn)?shù)從大到小排序
print(rs.zrevrangebyscore('fruits', 5, 3))
# 遍歷所有元素竹捉,返回一個(gè)元組
print(rs.zscan('fruits'))???#結(jié)果:(0, [('apple', 1.0), ('banana', 3.0), ('orange', 5.0)])
# 打印集合元素個(gè)數(shù)
print(rs.zcard('fruits'))????#結(jié)果:3
# 返回集合中分?jǐn)?shù)>=1 and 分?jǐn)?shù)<=3元素個(gè)數(shù)
print(rs.zcount('fruits', 1, 3))
# 將集合中apple元素的分?jǐn)?shù)+5
rs.zincrby('fruits', 5, 'apple')
print(rs.zrange("fruits", 0, -1, withscores=True))???#返回結(jié)果:[('banana', 3.0), ('orange', 5.0), ('apple', 6.0)]
# 返回orange元素在集合中的索引號(hào)
rs.zrank('fruits', 'orange')?????#結(jié)果:1
# 按分?jǐn)?shù)從大到小排序筷登,取出banana元素索引號(hào)
rs.zrevrank('fruits', 'banana')???#結(jié)果:2
# #刪除集合中apple元素
rs.zrem('fruits', 'apple')
print(rs.zrange("fruits", 0, -1))???#返回結(jié)果:['banana', 'orange']
# #刪除集合索引號(hào)>=0 and 索引號(hào)<=2的元素
rs.zremrangebyrank('fruits', 0, 2)
# 刪除集合分?jǐn)?shù)>=1 and 分?jǐn)?shù)<=5的元素
rs.zremrangebyscore('fruits', 1, 5)
```