redis之有序集合类型(Zset)——排行榜的实现

Redis有序集合(Zset)是不包含相同字符串且成员关联评分的合集,支持快速添加、删除和更新操作。凭借评分排序,可以高效获取范围元素,适合作为无重复成员的智能列表,尤其适合实现排行榜功能。例如,可以用于收入或积分排行榜的实时更新,通过关联评分实现动态排序。当实时性要求较高时,相比于全量缓存,利用Redis的有序集合能提供更即时的数据更新。
摘要由CSDN通过智能技术生成

Redis有序集合和Redis集合类似,是不包含 相同字符串的合集。它们的差别是,每个有序集合 的成员都关联着一个评分,这个评分用于把有序集 合中的成员按最低分到最高分排列。

使用有序集合,你可以非常快地(O(log(N)))完成添加,删除和更新元素的操作。 因为元素是在插入时就排好序的,所以很快地通过评分(score)或者 位次(position)获得一个范围的元素。 访问有序集合的中间元素同样也是非常快的,因此你可以使用有序集合作为一个没用重复成员的智能列表。 在这个列表中, 你可以轻易地访问任何你需要的东西: 有序的元素,快速的存在性测试,快速访问集合中间元素!

简而言之,使用有序集合你可以很好地完成 很多在其他数据库中难以实现的任务。

 

at first,我们先添加一下数据:

> zadd member_list 10 a 3 b 1 c 4 d 7 e

(integer) 5

#返回5,即成功加了5个进入集合。现在试试添加重复的元素

> zadd member_list 9 a 8 f

(integer) 1

#这个步骤,返回了1,而不是2,是因为a这个元素已经存在于集合当中了,不会添加成功。

> zrange member_list 0 6 WITHSCORES

1) "c"

2) 1.0

3) "b"

4) 3.0

5) "d"

6) 4.0

7) "e"

8) 7.0

9) "f"

10) 8.0

11) "a"

12) 9.0


可以看到,有序集合排序的规则是根据分母的大小,分母越小排在集合的前面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值