前言
在集合的基础上,为每元素排序,元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序。
有序集合常用方法
zadd(name, mapping):在name对应的有序集合中添加元素,元素为mapping格式,即dict格式
zcard(name):获取对应name的有序集合中的元素数量
zcount(name, min, max):获取对应name的有序集合中,在指定范围中的元素个数
import redis
r = redis.Redis()
r.zadd("zset001",{"a":100,"b":50,"c":80,"d":60,"e":40} )
print(r.zcard("zset001")) # 有序集合中的元素个数,结果:5
print(r.zcount("zset001",60,150)) # 元素满足60~150的个数,结果:3
zrange( name, start, end, desc=False, withscores=False, score_cast_func=float):在索引范围内获取元素(升序)
name:redis的name
start:有序集合索引起始位置
end:有序集合索引解说位置
desc:默认为False,升序排序
withscores:默认为False,只获取元素
score_cast_func:对分数进行转化,默认为float类型
zrevrange(name, start, end, withscores=False, score_cast_func=float):在索引范围内获取元素(降序),参数与zrange一致
import redis
r = redis.Redis()
r.zadd("zset002",{"a":100,"b":50,"c":80,"d":60,"e":40})
print(r.zrange("zset002",1,3)) # 从索引为1开始到索引为3(包括3)升序排列结果:[b'b', b'd', b'c']
print(r.zrevrange("zset002",1,3)) # 从索引为1开始到索引为3(包括3)降序排列结果:[b'c', b'd', b'b']
zrank(name, value):在name对应的有序集合中查找元素的索引值(升序排列后再取索引,索引从0开始)
zrevrank(name, value):在name对应的有序集合中查找元素的索引值(