Redis 有序集合和集合同样也是string类型元素的集合,且不容许重复的成员 ------- (有序不重复)html
不一样的是每一个元素都会关联一个double类型的分数;Redis正是经过分数来为集合中的成员进行从小到大的排序。redis
有序集合的成员是惟一的,但分数(score)却能够重复。spa
集合是经过哈希表实现的,因此添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每一个集合可存储40多亿个成员)。3d
2.1:赋值:zadd key score member score2 member2 … :将全部成员以及该成员的分数存放到sorted-set中。若是该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含以前已经存在的元素。htm
2.2:查看:zscore key member:返回指定成员的分数blog
zcard key :返回集合中的元素个数排序
2.3:范围查询:索引
zrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数代表返回的成员包含其分数。(分数由小到大排列)游戏
zrevrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数代表返回的成员包含其分数。(分数由大到小排列:排行榜)rem
2.4:删值:zrem key member[member…]:移除集合中指定的成员,能够指定多个成员。
1.能够用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,能够执行ZADD命令更新玩家的分数,此后再经过ZRANGE命令获取积分TOPTEN的用户信息。固然咱们也能够利用ZRANK命令经过username来获取玩家的排行信息。最后咱们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其余用户的信息。
二、sortedet类型还可用于构建索引数据
更多命令参考:http://www.runoob.com/redis/redis-sorted-sets.html