1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| ##1、zadd(name, *args, **kwargs) 在name对应的有序集合中添加元素
如: zadd('score', 'alex', 50, 'wxx', 60,'yxx', 70) 或 zadd('score', alex=50, wxx=60, yxx=70)
##2、zcard(name) 获取name对应的有序集合元素的数量
##3、zcount(name, min, max) 获取name对应的有序集合中分数在 [min,max] 之间的个数
##4、zincrby(name, value, amount) 自增name对应的有序集合的 name 对应的分数
##5、r.zrange( name, start, end, desc=False, withscores=False, score_cast_func=float) 按照索引范围获取name对应的有序集合的元素 参数: name,redis的name start,有序集合索引起始位置(非负数) end,有序集合索引结束位置(非负数) desc,排序规则,默认按照分数从小到大排序 withscores,是否获取元素的分数,默认只获取元素的值 score_cast_func,对分数进行数据转换的函数 例如: client.zrange('score', 0, 2, desc=True, withscores=True, score_cast_func=int) 结果:[(b'yxx', 70), (b'wxx', 60), (b'alex', 50)] 更多: 从大到小排序 zrevrange(name, start, end, withscores=False, score_cast_func=float) 按照分数范围获取name对应的有序集合的元素 zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float) 从大到小排序 zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float)
##6、zrank(name, value) 获取某个值在 name对应的有序集合中的排行(从 0 开始) 更多: zrevrank(name, value),从大到小排序
##7、zrangebylex(name, min, max, start=None, num=None) 当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的 值 (lexicographical ordering)来进行排序,而这个命令则可以返回给定的有序集合键 key 中, 元素的值介于 min 和 max 之间的成员 对集合中的每个成员进行逐个字节的对比(byte-by-byte compare), 并按照从低到高的顺序, 返回排序后的集合成员。 如果两个字符串有一部分内容是相同的话, 那么命令会认为较长的字符串比较短的字符串要大 参数: name,redis的name min,左区间(值)。 + 表示正无限; - 表示负无限; ( 表示开区间; [ 则表示闭区间 min,右区间(值) start,对结果进行分片处理,索引位置 num,对结果进行分片处理,索引后面的num个元素 如: ZADD myzset 0 aa 0 ba 0 ca 0 da 0 ea 0 fa 0 ga r.zrangebylex('myzset', "-", "[ca") 结果为:['aa', 'ba', 'ca'] 更多: 从大到小排序 zrevrangebylex(name, max, min, start=None, num=None)
##8、zrem(name, values) 删除name对应的有序集合中值是values的成员 如:zrem('zz', ['s1', 's2'])
##9、zremrangebyrank(name, min, max) 根据排行范围删除
##10、zremrangebyscore(name, min, max) 根据分数范围删除
##11、zremrangebylex(name, min, max) 根据值返回删除
##12、zscore(name, value) 获取name对应有序集合中 value 对应的分数
##13、zinterstore(dest, keys, aggregate=None) 获取两个有序集合的交集,如果遇到相同值不同分数,则按照aggregate进行操作 aggregate的值为: SUM MIN MAX
例如: client.flushdb() client.zadd('score1', 'alex', 50, 'wxx', 60,'yxx', 70) client.zadd('score2', 'alex', 60, 'wxx', 60,)
##先求名字的交集,再对同一名字对应的值进行SUM聚合操作 client.zinterstore('score_sum',keys=['score1','score2'],aggregate="SUM") print(client.zscore('score_sum','alex')) #110.0 print(client.zscore('score_sum','wxx')) #120.0 print(client.zscore('score_sum','yxx')) #None
##14、zunionstore(dest, keys, aggregate=None) 获取两个有序集合的并集,如果遇到相同值不同分数,则按照aggregate进行操作 aggregate的值为: SUM MIN MAX
##15、zscan(name, cursor=0, match=None, count=None, score_cast_func=float) ##16、zscan_iter(name, match=None, count=None,score_cast_func=float) 同字符串相似,相较于字符串新增score_cast_func,用来对分数进行操作
|