【梅开二度】Redis 数据类型五有序集合类型:
Redis 数据类型五有序集合类型:
集合类型是无序的,每个元素是唯一的。那么有序集合就是有序的,每个元素是唯一的。有序集合类型和集合类型的差别是,有序集合为每个元素配备了一个属性:分数。有序集合就是根据分数来排序的。有序集合是使用散列表和跳跃表实现的。所以和列表相比,操作中间元素的速度也很快。时间复杂度尾 O(log(N))。Redis 数据类型中的有序集合类型比 Redis 数据类型中的列表类型更加耗费资源。
http://cdn.u1.huluxia.com/g4/M02/01/27/rBAAdl81E66AG5b6AAA0C7_zT5A708.jpg
10、Redis数据命令五有序集合类型
1)增加:ZADD key sorce1 value1 sorce2 value2...。
2)获取分数:ZSCORE key value。获取key的有序集合中值为 value 的元素的分数。
3)获取排名在某个范围内的元素列表:ZRANFGE key start stop 。获取排名在 start 和 end 之间的元素列表,包含 start 和 end2 个元素。每个元素一行。如果有WITHSCORE参数,则一行元素值,一行分数。时间复杂度为O(LOGn+m)。如果分数相同,则 0<0
4)获取指定分数范围的元素:ZRANGEBYSCORE key min max 。获取分数在 min 和 max 之间的元素列表。含两头。每个元素一行。如果有 WITHSCORE 参数,则一行元素值,一行分数。如果 min 大于 max 则顺序反转。
5)为某个元素增加分数:ZINCRBY key increment value。指定的有序集合的值为 value 的元素的分数 +increment。返回值后更改后的分数。
6)获取集合中元素的数量:ZCARD key。
7)获取指定分数范围内的元素个数:ZCOUNT key min max。
8)删除一个或多个元素:ZREM key value1 value2...
9)根据排名范围删除元素:ZREMRANGEBYRANK key start end。删除排名在 start 和 end 中的元素。
10)按照分数范围删除元素:ZREMRANGEBYSCORE key min max。
11)获得元素排名(正序):ZRANK key value。获取 value 在该集合中的从小到大的排名。
12)获得元素排名(倒序):ZREVRANK key value。获取 value 在该集合中从大到小的排名。
13)有序集合的交集:ZINTERSTORE storekey key1 key2...] 。用来计算多个集合的交集,结果存储在 storekey中。返回值是 storekey 的元素个数。AGGREGATE 为 SUM 则 storekey 集合的每个元素的分数是参与计算的集合分数和。MIN 是参与计算的分数最小值。MAX 是参与计算分数最大值。WEIGHTS 设置每个集合的权重,如 WEIGHTS 1 0.1。那么集合A的每个元素分数 * 1,集合B的每个元素分数 * 0.1
14)有序集合的并集:ZUNIONSTORE storekey key1 kye2...] 66666666666 66666666666 56655 66655 66655 66655 66655 66655 66655