redis数据类型(六)Sorted set类型
一、sorted set类型
sorted set是有序集合,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,会自动重新按新的值调整顺序。可以理解了有两列的 mysql表,一列存value,一列存顺序。操作中key理解为sorted set的名字。
二、Sorted Set类型数据操作指令简介##
- zadd key score member 添加元素到集合,元素在集合中存在则更新对应 score。
- zrem key member 删除指定元素,1 表示成功,如果元素不存在返回 0。
- zincrby key incr member 增加对应 member 的 score 值,然后移动元素并保持 skip list 保持有序。返回更新后的 score 值。
- zrank key member 返回指定元素在集合中的排名(下标),集合中元素是按 score 从小到大排序的。
- zrevrank key member 同上,但是集合中元素是按 score 从大到小排序。
- zrange key start end 类似 lrange 操作从集合中去指定区间的元素。返回的是有序结果.
- zrevrange key start end 同上,返回结果是按 score 逆序的。
- zrangebyscore key min max 返回集合中 score 在给定区间的元素。
- zcount key min max 返回集合中 score 在给定区间的数量。
- zcard key 返回集合中元素个数。
- zscore key element 返回给定元素对应的 score。
- zremrangebyrank key min max 删除集合中排名在给定区间的元素。
- zremrangebyscore key min max 删除集合中 score 在给定区间的元素.
- zunionstore destination numkeys key1 key2......keyN 对keys对应的numkeys个有序集合计算合集,并将结果存储在destination中。在传递输入keys之前必须提供输入keys的个数和其它可选参数。在默认情况下,元素的结果score是包含该元素的所有有序集合中score的和。如果使用WEIGHTS选项,你可以对每一个有序集合指定一个操作因子。这意味着每一个有序集合中的每个元素的score在传递给聚合函数之前均会被乘以该因子。当WEIGHTS没有指定时,操作因子默认为1。
使用AGGREGATE选项,你可以指定交集中的结果如何被聚合。该选项默认值为SUM,在这种情况下,一个元素的所有score值均会被相加。当选项被设置为MIN或MAX时,结果集合中将会包含一个元素的最大或者最小的score值。如果destination已经存在,那么它将会被重写。