时间:2021-07-01 10:21:17 帮助过:36人阅读
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
二:有序集合常用操作
1)zadd(name, *args, **kwargs) 在name对应的有序集合中添加元素
2)zcard(name) 获取name对应的有序集合元素的数量
3)zcount(name, min, max) 获取name对应的有序集合中分数 在 [min,max] 之间的个数
4)zincrby(name, value, amount) 自增name对应的有序集合的 name 对应的分数
5)zrange( name, start, end, desc=False, withscores=False, score_cast_func=float) 按照索引范围获取name对应的有序集合的元素
# 参数:
# name,redis的name
# start,有序集合索引起始位置(非分数)
# end,有序集合索引结束位置(非分数)
# desc,排序规则,默认按照分数从小到大排序
# withscores,是否获取元素的分数,默认只获取元素的值
# score_cast_func,对分数进行数据转换的函数
6)zrank(name, value) 获取某个值在 name对应的有序集合中的排行(从 0 开始)
7)zrem(name, values) 删除name对应的有序集合中值是values的成员
9)zremrangebyrank(name, min, max) 根据排行范围删除
10)zremrangebyscore(name, min, max) 根据分数范围删除
11)zscore(name, value) 获取name对应有序集合中 value 对应的分数
12)zinterstore(dest, keys, aggregate=None) 获取两个有序集合的交集,如果遇到相同值不同分数,则按照aggregate进行操作
13)zunionstore(dest, keys, aggregate=None) 获取两个有序集合的并集,如果遇到相同值不同分数,则按照aggregate进行操作
14)zscan(name, cursor=0, match=None, count=None, score_cast_func=float) 缓存数据库-redis数据类型和操作(sorted set)
标签:mat max cursor tar line 转换 rem name bsp