Redis学习07——存储有序字符串集合(sorted set)

本文详细介绍了Redis中的有序字符串集合(sorted set),包括其特点、添加、删除、查询元素的方法,以及范围查询和其他高级命令。适用于游戏排名、热点话题等场景。
摘要由CSDN通过智能技术生成

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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值