关注
Q7:
如果我现在想用Redis实现一个TOP排行榜,我该怎样实现这个操作呢?然后可以为我详细介绍一下这个数据结构(它的底层是怎样实现的)
A:
排行榜可以通过Redis中的zset来实现,可以根据实时的Score来进行排序得到TOP排行榜。而Redis中的zset具有两种不同的实现方案,首先便是ziplist,采用的是类似于哈希对象的存取方式,一个entry项中,前一个是key,然后跟着的是score;但是类似于其他对象的ziplist实现方案,这种实现会受到大小的限制,即单个元素的长度小于64,元素数量小于128;另外一种是采取skiplist(可以根据Score由小到大进行排序,另外还可以存储对象,即分值对应的对象)编码实现,这种实现方案不仅采用了skiplist,而且使用了hash来进行优化。
而关于Redis为什么采用了SkipList还要使用Hash来进行优化,我的考虑在于skiplist与hash的优缺点比较,其中skiplist的优点在于:实现简单,数据天然有序 ,但是其查询和插入时间复杂度均为O(logn),而Hash的查询,插入时间复杂度均为O(1),但是其并不适合查询操作,因此,**可以结合两者的特性,让更擅长的人做更擅长的事**。因此采用了hash和skiplist共同实现。
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
- 1... 都在找Agent开发,我整理了80道相关的Agent开发面试题。2.1W
- 2... 学院本春招逆袭年包25w1.2W
- 3... 27后端暑期实习-字节-中国广告与交易(已OC4969
- 4... 腾讯后端复试面经4710
- 5... 前端Agent面试全攻略,个人总结,供参考3676
- 6... AI时代,技术er的三大“职业单选题”3646
- 7... 3.26 淘天暑期一面(已挂) 80MIN3603
- 8... 快手后端-Java开发二面面经3438
- 9... #美团笔试#不知道为什么算法题第一题只能通过15%的测试用例. 另外, 大模型的基础知识太差了, 很多知识点都不知道3337
- 10... AI应用开发求职心得分享,怎么走才可以轻松上岸?3325
正在热议
更多
# 你的实习产出是真实的还是包装的? #
22543次浏览 368人参与
# 携程笔试 #
138429次浏览 830人参与
# 米连集团26产品管培生项目 #
13880次浏览 288人参与
# 拼多多集团-PDD笔试 #
34819次浏览 331人参与
# 找AI工作可以去哪些公司? #
12301次浏览 462人参与
# 一人说一个提前实习的好处 #
118188次浏览 710人参与
# 厦门银行科技岗值不值得投 #
8750次浏览 193人参与
# 从事AI岗需要掌握哪些技术栈? #
11637次浏览 548人参与
# 工作中,努力重要还是选择重要? #
276254次浏览 2555人参与
# 你做过最难的笔试是哪家公司 #
40459次浏览 460人参与
# AI面会问哪些问题? #
31883次浏览 784人参与
# 金三银四,你的春招进行到哪个阶段了? #
23213次浏览 288人参与
# 中国电信笔试 #
32761次浏览 302人参与
# 哪些公司真双非友好? #
70152次浏览 291人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
342000次浏览 2186人参与
# 秋招被挂春招仍然能投的公司 #
28743次浏览 232人参与
# 深信服求职进展汇总 #
262231次浏览 1816人参与
# bilibili求职进展汇总 #
187208次浏览 1086人参与
# 同bg的你秋招战况如何? #
212387次浏览 1121人参与
# 如何准备秋招 #
78452次浏览 868人参与
# 校招谈薪一定要知道的事 #
39786次浏览 220人参与
# 应届生被毁约被毁意向了怎么办 #
63533次浏览 305人参与