Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

zadd key score1 member1 score2 member2 #向有序集合添加一个或多个成员,或者更新已存在成员的分数

zcard key #返回有序集合成员个数

zcount key min max #返回有序集合中指定区间分数的成员数

zincrby key increment member #有序集合中对指定成员的分数加上增量 increment
1,Redis Zincrby 命令对有序集合中指定成员的分数加上增量 increment
2,可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。
3,当 key 不存在,或分数不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。
4,当 key 不是有序集类型时,返回一个错误。
5,分数值可以是整数值或双精度浮点数。

=-=笔记写不下去了,好多东西都是一样的

zinterstore destination numkeys key1 [key2] [key3] 
1,Redis Zinterstore 命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination 。
2,默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和。

zlexcount key min max #在有序集合中计算指定字典区间内成员数量
用法:zadd zimu 0 a 0 b 0 c 0 d 0 f 0 g 0 h 0 i
zlexcount zimu - +
zlexcount zimu [a [c
zlexcount zimu (a (c
zlexcount zimu - [d
zlexcount zimu [g +

zrange key start stop [WITHSCORES] #通过索引区间返回有序集合指定区间内的成员

zrangebylex key min max [LIMIT offset count] #通过字典区间返回有序集合的成员

zrangebyscore key min max [WITHSCORES] [LIMIT] #通过分数返回有序集合指定区间内的成员

zrank key member #返回有序集合中指定成员的索引

zrem key menber1 [member2] [member3] #移除一个或多个成员

zremrangebylex key min max #移除有序集合中给定的字典区间的所有成员

zremrangebyrank key start stop #通过索引区间移除区间内成员

zremrangebyscore key min max #通过分数区间移除区间内成员

zrevrange key start stop [WITHSCORES] #返回有序集中指定区间内的成员,通过索引,分数从高到低

ZREVRANGEBYSCORE key max min [WITHSCORES] #返回有序集中指定分数区间内的成员,分数从高到低排序

ZREVRANK key member #返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

ZSCORE key member #返回有序集中,成员的分数值

ZUNIONSTORE destination numkeys key [key ...] #计算给定的一个或多个有序集的并集,并存储在新的 key 中

ZSCAN key cursor [MATCH pattern] [COUNT count] #迭代有序集合中的元素(包括元素成员和元素分值)

常用场景:

1,排行榜

2,权重