Redis学习07——存储有序字符串集合(sorted set)
2017-09-28 00:49
615 查看
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
中。它们之间的主要差别是Sorted-Set中的每一个成员都会有一个分数(score)与之关联,Redis正是
通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Set中的成
员必须是唯一的,但是分数(score)却是吋以重复的。
在Sorted-Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员
数里的对数。由于Sorted-Set中的成员在集合中的位置是有序的,因此,即便是访问位于集合中部
的成员也仍然是非常高效的。事实上, Redis所具有的这一特征在很多其它类型的数据库中是很难实
现的,换句话说,在该点上要想达到和Redis同样的高效,在其它数据库中进行建模是非常闲难的
例如:游戏排名、微博热点话题等使用场景。
含义:
将所有成员以及该成员的分数存放到sorted-set中,
如果该元素己经存在则会用新的分数替已有的分数。返回值是新加入到集合中的元素个数
不包含之前己经存在的元索。
示例
含义:
返回指定成员的分数
示例
含义:
获取集合中的成员数量
示例
含义:
移除集合中指定的成员,可以指定多个成员
示例
含义:
获取集合集中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数(可选)
示例
含义:
获取集合集中脚标为start-end的成员(按分数从大到小,和上面的指令相反),[withscores]参数表明返回的成员包含其分数(可选)
示例
含义:
按照排名范围删除元素
示例
含义:
按照分数范围删除元素
示例
含义:
返回分数在[min,max]的成员并按照分数从低到高拍讯。[withscores]:显示分数。[limit offset count]:offset ,表明从脚标为offset的元素开始,返回count个元素
示例
含义:
设置指定成员的增加分数。返回值是更改以后的分数。
示例
含义:
获取分数在[min,max]的成员数量
示例
含义:
返回成员在集合中的排名(从小到大)
示例
含义:
返回成员在集合中的排名(从大到小)
示例
一有序字符串集合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 -1 1) "xiaoming" 2) "qiwenming" 127.0.0.1:6379> zrange mysortedset 0 -1 withscores 1) "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 -1 1) "qiwenming" 2) "xiaoming" 127.0.0.1:6379> zrevrange mysortedset 0 -1 withscores 1) "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) 2 127.0.0.1:6379> zrange mysortedset 0 -1 withscores 1) "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) 2 127.0.0.1:6379> zrange mysortedset 0 -1 1) "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) 2 127.0.0.1:6379> zrange mysortedset 0 -1 withscores 1) "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) 2 127.0.0.1:6379> zrange mysortedset 0 -1 withscores 1) "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) 2 127.0.0.1:6379> zrange mysortedset 0 -1 withscores 1) "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 1) "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 2 1) "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 withscores 1) "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 -1 1) "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 -1 1) "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源码分析(七)、redis命令学习总结—Redis 有序集合(sorted set)
- Redis学习06——存储字符串集合(set)
- Redis-数据结构(有序字符串集合sorted set)
- Redis学习手册——有序集合(Sorted Sets数据类型)
- Python 操作redis有序集合(sorted set)
- Redis 有序集合(sorted set)
- Redis的Sorted Set有序集合命令
- Redis初探06——Redis的有序集合sorted set类型及操作
- Redis 有序集合(sorted set)
- Redis从基础命令到实战之有序集合类型(SortedSet)
- redis 学习手册之有序集合数据类型sorted-sets操作
- Redis--有序集合(sorted set)
- python 操作redis之——有序集合(sorted set) (七)
- Redis 与有序集合(sorted set)相关的命令
- nosql数据库redis学习 集合set以及有序集合zset
- Redis 有序集合(sorted set)
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
- Redis 有序集合(sorted set)
- Redis入门(五)有序集合Sorted SetSet
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数