python加redis使用教程_python操作Redis入门教程④

四、有序集合 sorted sets

命令描述

Redis Zadd 命令向有序集合添加一个或多个成员,或者更新已存在成员的分数

Redis Zcard 命令获取有序集合的成员数

Redis Zcount 命令计算在有序集合中指定区间分数的成员数

Redis Zincrby 命令有序集合中对指定成员的分数加上增量 increment

Redis 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()  # 清空Redis

r.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))

输出结果如下:

6

2

[(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)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值