Redis有序集合

Redis有序集合类似Redis集合存储在设定值唯一性。不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关。

Redis 有序set添加,删除和测试中的O(1)的存在成员(固定时间,无论里面包含的元素集合的数量)。列表的最大长度为232- 1元素(4294967295,超过4十亿每个元素的集合)。

例子

redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES

1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

在上述例子中的三个值由命令ZADD插入其分数在redis排序集合并命名tutorials。

Redis排序命令集

如下表显示与??排序集的一些基本命令:

S.N. 命令& 描述
1 ZADD key score1 member1 [score2 member2] 
添加一个或多个成员到有序集合,或者如果它已经存在更新其分数
2 ZCARD key 
得到的有序集合成员的数量
3 ZCOUNT key min max 
计算一个有序集合成员与给定值范围内的分数
4 ZINCRBY key increment member 
在有序集合增加成员的分数
5 ZINTERSTORE destination numkeys key [key ...] 
多重交叉排序集合,并存储生成一个新的键有序集合。
6 ZLEXCOUNT key min max 
计算一个给定的字典范围之间的有序集合成员的数量
7 ZRANGE key start stop [WITHSCORES] 
由索引返回一个成员范围的有序集合。
8 ZRANGEBYLEX key min max [LIMIT offset count] 
返回一个成员范围的有序集合(由字典范围)
9 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 
按分数返回一个成员范围的有序集合。
10 ZRANK key member 
确定成员的索引中有序集合
11 ZREM key member [member ...] 
从有序集合中删除一个或多个成员
12 ZREMRANGEBYLEX key min max 
删除所有成员在给定的字典范围之间的有序集合
13 ZREMRANGEBYRANK key start stop 
在给定的索引之内删除所有成员的有序集合
14 ZREMRANGEBYSCORE key min max 
在给定的分数之内删除所有成员的有序集合
15 ZREVRANGE key start stop [WITHSCORES] 
返回一个成员范围的有序集合,通过索引,以分数排序,从高分到低分
16 ZREVRANGEBYSCORE key max min [WITHSCORES] 
返回一个成员范围的有序集合,按分数,以分数排序从高分到低分
17 ZREVRANK key member 
确定一个有序集合成员的索引,以分数排序,从高分到低分
18 ZSCORE key member 
获取给定成员相关联的分数在一个有序集合
19 ZUNIONSTORE destination numkeys key [key ...] 
添加多个集排序,所得排序集合存储在一个新的键
20 ZSCAN key cursor [MATCH pattern] [COUNT count] 
增量迭代排序元素集和相关的分数

文章转载自:易百教程 [http:/www.yiibai.com]

本文标题:Redis有序集合
本文地址:http://www.yiibai.com/redis/redis_sorted_sets.html

时间: 2024-10-07 17:30:16

Redis有序集合的相关文章

Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序集合的成员是唯一的,但分数(score)却可以重复. 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1). 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员). 实例 redis 127.0.0.1:6379> ZADD w3ckey 1 r

利用Redis有序集合开发普适的排行榜功能

作者:zhanhailiang 日期:2014-12-02 本文将讲解如何基本Redis Sorted Set实现排行榜功能? 首先,请参见Redis数据类型:http://redis.cn/topics/data-types.html 如上所见,Redis有序集合非常适用于有序不重复数据的存储,例如游戏开发中无处不在的排行榜,如等级排行榜,经验排行榜,积分排行榜,历史筹码排行榜等.如果沿用传统的方法,一般是通过后端的定时任务去跑数据来生成排行榜数据,这种方法一方面无法满足产品对功能实时性的要求

redis 有序集合(zset)函数

redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stored at key. 增加一个或多个元素,如果该元素已经存在,更新它的socre值 虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会 更新原有元素的score值 Parameters key score : double value: string Return value Long

Redis 有序集合

有序集合? Redis的有序集合中,每个成员有两个属性. 一个是这个成员的名:MEMBER_NAME: 一个是这个成员的值:MEMBER_SCORE. 1.ZADD 命令 用于将带有给定分值的成员添加到有序集合里面. 如果输入的成员存在于该有序集合,并且该成员分值发生变化时,则更新这个分值. 分值可以是整数值或双精度浮点数. 如果指定的有序集合不存在,则创建一个空的有序集合执行ZADD操作. 127.0.0.1:6379> ZADD key [NX|XX] [CH] [INCR] score m

redis有序集合类型sort set

redis的数据类型之-有序集合 sort set和set类型一样,也是string类型元素的集合,不同的是sort set每个元素都会关联一个权,通过权值可以有序的获取集合中的元素 sort set类型适合场景: 获得排名最前的5个热门帖子信息(通过帖子回复量标识热门帖子),用sql的做法:select  *  from message order by backnum desc limit 5;但是当数据量足够大时,比如有1亿条数据,这一条sql下去就会耗费大量数据库资源,查询速度也很慢,即

python 操作redis有序集合(sorted set)

#coding:utf8 import redis r =redis.Redis(host="23.226.74.190",port=63279,password="66666666666") 1.Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中.如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上.分数值可以是整数值或双精度浮点数.如果有序集合 key 不存在,则创建一个空的有序集并执行

Redis有序集合数据类型操作命令

sorted sets类型及操作 sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset(有序集合)会自动重新按新的值调整顺序.可以理解为有两列的mysql表,一列存value,一列存顺序.操作中key理解为zset的名字. zset的方法: zadd:向名称为key的zset中添加元素member,score用于排序.如果该元素存在,则更新其顺序 127.0.0.1:6379> zadd myzset 1 o

Redis有序集合Sorted set操作

 Sorted set全部命令如下: zadd key score1 member1 score2 member2 ... # 将一个或多个member元素及其score值加入到有序集合key当中 zcard key # 返回有序集合key中成员的数量 zcount key min max # 返回有序集合key中score值在min和max之间的成员的数量 zincrby key increment member # 为有序集合key的成员member的score值加上增量increment,

redis 有序集合(set),无需集合(zset)

1.set(无序集合)无序集合每个元素都是string元素的唯一性,不能重复没有修改操作 1.增加 sadd key value1 value2 value3... 2.获取 smembers key 3.删除(删除一个或多个) srem key value value1 value2... 2.zset(有序集合)有序集合每个元素都是string元素的唯一性,不能重复每个元素都关联一个duoble类型的score,表示权重,通过权重将元素从小到大排列没有修改操作1.增加 zadd key sc