Redis学习07——存储有序字符串集合(sorted set)
来源:互联网 发布:淘宝客服链接 编辑:程序博客网 时间:2024/06/18 05:21
- Redis学习07存储有序字符串集合sorted set
- 一有序字符串集合sorted set说明
- 二添加元素
- 三获得元素
- 1 zscore key member
- 2 zcard key
- 三删除元素
- 四范围查询
- 1 zrange key start end withscores
- 2 zrevrange key start end withscores
- 3 zremrangebyrank key start end
- 4 zremrangebyscore key min max
- 五其他命令
- 1 zrangebyscore key min max withscores limit offset count
- 2 zincrby key increment member
- 3 zcount key min max
- 4 zrank key member
- 5 zrevrank key member
Redis学习07——存储有序字符串集合(sorted set)
一、有序字符串集合(sorted set)说明
Sorted-Set和Set类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set
中。它们之间的主要差别是Sorted-Set中的每一个成员都会有一个分数(score)与之关联,Redis正是
通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Set中的成
员必须是唯一的,但是分数(score)却是吋以重复的。
在Sorted-Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员
数里的对数。由于Sorted-Set中的成员在集合中的位置是有序的,因此,即便是访问位于集合中部
的成员也仍然是非常高效的。事实上, Redis所具有的这一特征在很多其它类型的数据库中是很难实
现的,换句话说,在该点上要想达到和Redis同样的高效,在其它数据库中进行建模是非常闲难的
例如:游戏排名、微博热点话题等使用场景。
二、添加元素
命令:
zadd key score1 member1 score2 member2 ....
含义:
将所有成员以及该成员的分数存放到sorted-set中,
如果该元素己经存在则会用新的分数替已有的分数。返回值是新加入到集合中的元素个数
不包含之前己经存在的元索。
示例
127.0.0.1:6379> zadd mysortedset 5 wiming 10 xiaoming 30 qiwenming 40 wenming(integer) 4
三、获得元素
3.1 zscore key member
命令:
zscore key member
含义:
返回指定成员的分数
示例
127.0.0.1:6379> zscore mysortedset wiming"5"
3.2 zcard key
命令:
zcard key
含义:
获取集合中的成员数量
示例
127.0.0.1:6379> zcard mysortedset(integer) 4
三、删除元素
命令:
zrem key member1 member2 ....
含义:
移除集合中指定的成员,可以指定多个成员
示例
127.0.0.1:6379> zrem mysortedset wiming wenming(integer) 2
四、范围查询
4.1 zrange key start end [withscores]
命令:
zrange key start end [withscores]
含义:
获取集合集中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数(可选)
示例
127.0.0.1:6379> zrange mysortedset 0 -11) "xiaoming"2) "qiwenming"127.0.0.1:6379> zrange mysortedset 0 -1 withscores1) "xiaoming"2) "10"3) "qiwenming"4) "30"
4.2 zrevrange key start end [withscores]
命令:
zrevrange key start end [withscores]
含义:
获取集合集中脚标为start-end的成员(按分数从大到小,和上面的指令相反),[withscores]参数表明返回的成员包含其分数(可选)
示例
127.0.0.1:6379> zrevrange mysortedset 0 -11) "qiwenming"2) "xiaoming"127.0.0.1:6379> zrevrange mysortedset 0 -1 withscores1) "qiwenming"2) "30"3) "xiaoming"4) "10"
4.3 zremrangebyrank key start end
命令:
zremrangebyrank key start end
含义:
按照排名范围删除元素
示例
127.0.0.1:6379> zadd mysortedset 5 wiming 35 qiwenming 40 qwm(integer) 2127.0.0.1:6379> zrange mysortedset 0 -1 withscores1) "wiming"2) "5"3) "xiaoming"4) "10"5) "qiwenming"6) "35"7) "qwm"8) "40"127.0.0.1:6379> zremrangebyrank mysortedset 0 1(integer) 2127.0.0.1:6379> zrange mysortedset 0 -11) "qiwenming"2) "qwm"
4.4 zremrangebyscore key min max
命令:
zremrangebyscore key min max
含义:
按照分数范围删除元素
示例
127.0.0.1:6379> zadd mysortedset 5 wiming 10 xiaoming(integer) 2127.0.0.1:6379> zrange mysortedset 0 -1 withscores1) "wiming"2) "5"3) "xiaoming"4) "10"5) "qiwenming"6) "35"7) "qwm"8) "40"127.0.0.1:6379> zremrangebyscore mysortedset 10 35(integer) 2127.0.0.1:6379> zrange mysortedset 0 -1 withscores1) "wiming"2) "5"3) "qwm"4) "40"
五、其他命令
5.1 zrangebyscore key min max [withscores] [limit offset count]
命令:
zrangebyscore by min max [withscores] [limit offset count]
含义:
返回分数在[min,max]的成员并按照分数从低到高拍讯。[withscores]:显示分数。[limit offset count]:offset ,表明从脚标为offset的元素开始,返回count个元素
示例
127.0.0.1:6379> zadd mysortedset 10 xiaoming 30 qiwenming(integer) 2127.0.0.1:6379> zrange mysortedset 0 -1 withscores1) "wiming"2) "5"3) "xiaoming"4) "10"5) "qiwenming"6) "30"7) "qwm"8) "40"127.0.0.1:6379> zrangebyscore mysortedset 5 40 withscores1) "wiming"2) "5"3) "xiaoming"4) "10"5) "qiwenming"6) "30"7) "qwm"8) "40"127.0.0.1:6379> zrangebyscore mysortedset 5 40 withscores limit 0 21) "wiming"2) "5"3) "xiaoming"4) "10"127.0.0.1:6379>
5.2 zincrby key increment member
命令:
zincrby key increment member
含义:
设置指定成员的增加分数。返回值是更改以后的分数。
示例
127.0.0.1:6379> zincrby mysorted 10 xiaoming"20"
5.3 zcount key min max
命令:
zcount key min max
含义:
获取分数在[min,max]的成员数量
示例
127.0.0.1:6379> zrange mysortedset 0 -1 withscores1) "wiming"2) "5"3) "xiaoming"4) "10"5) "qiwenming"6) "30"7) "qwm"8) "40"127.0.0.1:6379> zcount mysortedset 5 20(integer) 2
5.4 zrank key member
命令:
zrank key member
含义:
返回成员在集合中的排名(从小到大)
示例
127.0.0.1:6379> zrange mysortedset 0 -11) "wiming"2) "xiaoming"3) "qiwenming"4) "qwm"127.0.0.1:6379> zrank mysortedset xiaoming(integer) 1
5.5 zrevrank key member
命令:
zrevrank key member
含义:
返回成员在集合中的排名(从大到小)
示例
127.0.0.1:6379> zrange mysortedset 0 -11) "wiming"2) "xiaoming"3) "qiwenming"4) "qwm"127.0.0.1:6379> zrank mysortedset xiaoming(integer) 1127.0.0.1:6379> zrevrank mysortedset xiaoming(integer) 2
- Redis学习07——存储有序字符串集合(sorted set)
- redis源码分析(七)、redis命令学习总结—Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis 有序集合(sorted set)
- redis 有序集合 sorted set
- Redis-数据结构(有序字符串集合sorted set)
- Redis学习06——存储字符串集合(set)
- Redis学习手册——有序集合(Sorted Sets数据类型)
- Redis的有序集合(sorted set)
- vlan vtp配置
- Mondriaan's Dream POJ
- 1078. Hashing (25)
- 运维基础2
- HDU
- Redis学习07——存储有序字符串集合(sorted set)
- 数据库连接池
- 工作心路历程系列2:离职大公司入职创业公司心路历程
- NodeJs随手记
- 64. Minimum Path Sum(Java)
- [AGC005D]~K Perm Counting-二分图-动态规划
- ES6——Descrotor(修饰器)
- 继承与多态
- Linux 基本操作(二)————Linux系统结构、文件管理、通配符