Python操作Redis大全( 四 )

输出结果如下:
3{b'v3', b'v1'}{b'v3', b'v1'}{b'v2'}{b'v2'}{b'v3', b'v2', b'v4', b'v1'}{b'v3', b'v2', b'v4', b'v1'}False{b'v3', b'v2', b'v4', b'v1'}b'v2'b'v3'四、有序集合 sorted sets
命令描述Redis Zadd 命令向有序集合添加一个或多个成员 , 或者更新已存在成员的分数Redis Zcard 命令获取有序集合的成员数Redis Zcount 命令计算在有序集合中指定区间分数的成员数Redis Zincrby 命令有序集合中对指定成员的分数加上增量 incrementRedis Zinterstore 命令计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中Redis Zlexcount 命令在有序集合中计算指定字典区间内成员数量Redis Zrange 命令通过索引区间返回有序集合成指定区间内的成员Redis Zrangebylex 命令通过字典区间返回有序集合的成员Redis Zrangebyscore 命令通过分数返回有序集合指定区间内的成员Redis Zrank 命令返回有序集合中指定成员的索引Redis Zrem 命令移除有序集合中的一个或多个成员Redis Zremrangebylex 命令移除有序集合中给定的字典区间的所有成员Redis Zremrangebyrank 命令移除有序集合中给定的排名区间的所有成员Redis Zremrangebyscore 命令移除有序集合中给定的分数区间的所有成员Redis Zrevrange 命令返回有序集中指定区间内的成员 , 通过索引 , 分数从高到底Redis Zrevrangebyscore 命令返回有序集中指定分数区间内的成员 , 分数从高到低排序Redis Zrevrank 命令返回有序集合中指定成员的排名 , 有序集成员按分数值递减(从大到小)排序Redis Zscore 命令返回有序集中 , 成员的分数值Redis Zunionstore 命令计算给定的一个或多个有序集的并集 , 并存储在新的 key 中Redis Zscan 命令迭代有序集合中的元素(包括元素成员和元素分值)示例代码如下:
#!/usr/bin/python# -*- coding:utf-8 -*-# __author__ = 'Jack'pool = redis.ConnectionPool(host='127.0.0.1', port=6379)r = redis.Redis(connection_pool=pool)r.flushall # 清空Redisr.zadd('z1', '11', 1, '22', 2, '33', 3, '44', 4, '55', 5, '66', 6, '66', 7) # 在name对应的有序集合中添加元素print(r.zcard('z1')) # 获取name对应的有序集合元素的数量print(r.zcount('z1', 1, 2)) # 获取name对应的有序集合中分数 在 [min,max] 之间的个数r.zincrby('z1', '11', amount=5) # 自增name对应的有序集合的 name 对应的分数print(r.zrange('z1', 0, -1, desc=False, withscores=True)) # 值11被排序到最后;此处表示按元素的值升序排列print(r.zrank('z1', 33)) # 获取某个值在 name对应的有序集合中的排行(从 0 开始)r.zrem('z1', '66') # 删除name对应的有序集合中值是values的成员print(r.zrange('z1', 0, -1, desc=False, withscores=True))r.zremrangebyrank('z1', 0, 1) # 根据排行范围删除print(r.zrange('z1', 0, -1, desc=False, withscores=True))r.zremrangebyscore('z1', 4.5, 5.5) # 根据分数范围删除print(r.zrange('z1', 0, -1, desc=False, withscores=True))print(r.zscore('z1', 11)) # 获取name对应有序集合中 value 对应的分数r.zadd("zset_name", "a1", 6, "a2", 2, "a3", 5)r.zadd('zset_name1', a1=7, b1=10, b2=5)'''获取两个有序集合的交集并放入dest集合 , 如果遇到相同值不同分数 , 则按照aggregate进行操作aggregate的值为: SUM MIN MAX'''r.zinterstore('zset_name2', ('zset_name', 'zset_name1'), aggregate='Sum')print(r.zrange('zset_name2', 0, -1, desc=False, withscores=True))输出结果如下:
62[(b'22', 2.0), (b'33', 3.0), (b'44', 4.0), (b'55', 5.0), (b'11', 6.0), (b'66', 6.0)]1[(b'22', 2.0), (b'33', 3.0), (b'44', 4.0), (b'55', 5.0), (b'11', 6.0)][(b'44', 4.0), (b'55', 5.0), (b'11', 6.0)][(b'44', 4.0), (b'11', 6.0)]6.0[(b'a1', 13.0)]


推荐阅读