您的位置:首页 > 数据库 > Redis

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: