六、Redis 基础命令--有序集合

1、有序集合是由散列表和跳跃表实现的,所以即使元素再多,获取中间的元素速度也很快。

2、有序集合为集合中的每个元素都关联了一个分数。

3、有序集合与列表的对比

相同点:

都是有序的,都可以获取某一个范围的元素

不同点:

1、列表是采用双向链表实现的,所以获取接近两端的数据很快,获取中间数据会很慢。

2、有序集合则采用的是散列表和跳跃表(百度好理解)

3、列表中不能调整某个元素的位置,但是集合可以,通过更改分数。

4、有序集合更耗费内存

4、ZADD 添加元素,返回新添加的个数 (不含已经有的)

127.0.0.1:6379> ZADD eng_score 85 klov 90 klov2 100 klov3

(integer) 3

如果元素已存在,则会用新的分数替换掉原有的分数,返回数据 0

127.0.0.1:6379> ZADD eng_score 99 klov

(integer) 0

127.0.0.1:6379> ZSCORE eng_score klov

"99"

5、ZSCORE 获取元素的分数

127.0.0.1:6379> ZSCORE eng_score klov

"88"

6、分数不仅支持正数,还支持浮点数

7、获得排名在某一范围内的元素列表

ZRANGE key start stop [WITHSCORES] ------------从小到大的顺序

ZREVRANGE key start stop [WITHSCORES]-------- 从大到小的顺序

按照分数从小到大(大到小)的顺序返回索引从start 到 stop之间的所有元素(包含两端数据)。和LRANGE命令相似,索引都是从 0 开始,负数代表从后向前查找(-1表示最后一个元素,所以 ZRANGE key 0 -1 就是获取所有元素)

127.0.0.1:6379> ZRANGE eng_score 0 -1 WITHSCORES

1) "klov2"

2) "90"

3) "klov"

4) "99"

5) "klov3"

6) "100"

如果两个元素的分数相同,则会按照字典顺序返回

127.0.0.1:6379> ZRANGE eng_score 0 -1 WITHSCORES

1) "klov2"

2) "90"

3) "klov"

4) "99"

5) "angla"

6) "100"

7) "klov3"

8) "100"

8、获得指定范围的元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

获取的元素包含两端min和max.如果不需要两端可以执行:

127.0.0.1:6379> ZRANGEBYSCORE eng_score (60 (100

1) "klov2"

2) "klov"

还支持无穷大: -inf  +inf

9、增加某个元素的分数:ZINCRBY key increment member 返回增加后的值

127.0.0.1:6379> ZINCRBY eng_score 50 klov3

"150"

时间: 2024-10-24 16:26:16

六、Redis 基础命令--有序集合的相关文章

五、Redis 基础命令---无序集合

1.集合中的每个元素都是唯一的,没有顺序的. 2.集合与列表的对比 集合 列表 存储内容 最多 2^32-1个字符串 最多 2^32-1个字符串 有序性 无序 有序 唯一性 唯一 不唯一 3.集合内部使用的是值为空的散列表实现,所以向集合中插入.删除.判断元素是否存在操作的时间复杂度都是O(1) 4.SADD key member1 member2...添加元素,可以同时添加多个 127.0.0.1:6379> SADD setA 1 2 3 4 (integer) 4 5.SMEMBERS k

辛星浅析Redis中的有序集合

Redis中的有序集合也就是sorted-set,它和set很相似,都是字符串的集合,都不允许重复的成员出现在一个集合张.有序集合与集合的主要差别是有序集合中的每一个元素都有一个序号与其相连,这个序号即score,Redis通过这个序号来为集合中的成员进行从小到大的排列.需要特别说明的是,尽管有序集合的元素值是唯一的,但是该value对应的score却可以是多个.在有序集合中添加.删除.更新一个成员的操作都很快,其时间复杂度是集合中成员的对数. 因为有序集合中的成员在集合中的位置是有序的,即便是

Redis Sorted Set有序集合 存储操作方法

欢迎大家加入 459479177QQ群进行交流 这一章是Redis Sorted Set有序集合五种方式的最后一种, 首先我们使用redis-cli进入redis [[email protected] ~]# redis-cli  127.0.0.1:6379> 1>zadd 方法:zadd key source1 [key sourceN...] 描述:添加一个或多个有序集合成员元素,如果存在则更新成员的分数值,并插入此成语,确保该成员在正确的位置,如果key不存在则创建一个新的key,然后

【Redis源码剖析】 - Redis数据类型之有序集合zset

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51231967 这周事情比较多,原本计划每周写两篇文章的任务看来是完不成了.今天为大家带来有序集合zset的源码分析. Redis中的zset主要支持以下命令: zadd.zincrby zrem.zremrangebyrank.zremrangebyscore.zremrangebyrank zrange.zrevrange.zrangebyscore.zrevrangebys

Redis数据操作--有序集合

| Redis 的集合以无序的方式储存多个各不相同的元素 # 用户可以快速地向集合添加元素,或者从集合里面删除元素,也可以对多个集合 进行集合运算操作,比如计算并集,交集和差集. | 元素操作 -- 添加元素     sadd key element [element ...]     # 将一个或多个元素添加到给定的集合里面,已经存在于集合的元素会         自动被忽略,命令返回新添加到集合的元素数量. -- 移除元素     srem key element [element ...]

windows下使用redis,Redis入门使用,Redis基础命令

一.Redis的使用 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s . 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作. 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作

七、Redis 基础命令---任务队列

1.优势:松耦合 易于扩展 ,消费者可以扩展多个,分布在不同的服务器中 2.LPUSH RPOP 3.BRPOP命令和RPOP相似,唯一区别:当列表中没有元素时,BRPOP命令会一直阻塞住链接,知道有新元素加入 4.BRPOP key timeout timeout 等于0 表示不限制等待时间(单位是秒),如果没有元素会一直阻塞下去.如:BRPOP list 0 5.BRPOP key 1 阻塞1秒,取出数据.返回值是一个数组,第一个元素是键名,第二个元素是 值value.如果没有数据,返回ni

一、Redis 基础命令---总括

1.redis命令不区分大写和小写.可是KEY区分大写和小写. 2.redis-cli -h 127.0.0.1 -p 6379 依据IP/PORT链接服务端 3.redis-server --port 6380  --port參数设置服务端端口号 4.參数设置 A.redis-server redis.conf    启动时载入配置文件设置參数 B.redis-server redis.conf --loglevel waring  通过启动參数覆盖配置文件里同名的參数值 C.执行时更新參数值

Redis 基础命令

redis的常用命令主要分为两个方面.一个是键值相关命令.一个是服务器相关命令 1.键值相关命令 keys * 取出当前所有的key exists name 查看n是否有name这个key del name 删除key name expire confirm 100 设置confirm这个key100秒过期 ttl confirm 获取confirm 这个key的有效时长 select 0 选择到0数据库 redis默认的数据库是0~15一共16个数据库 move confirm 1 将当前数据