首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
啊叭啊叭啊叭叭
门头沟学院 Java
发布于天津
关注
已关注
取消关注
@JavaSouth南哥:
【面试官】Redis有序集合用什么数据结构来实现?
面试官:Redis什么这么快? 面试官:你说说Redis五大基本数据类型? 面试官:有利用过有序集合开发过什么功能吗? 面试官:有序集合用什么数据结构来实现? 面试官:那有序集合为什么要使用字典和跳跃表? 面试官:压缩列表呢? 大家好,我是南哥。 一个Java学习与进阶的领路人,跟着南哥我们一起Java成长。 文章目录 Redis快的秘密 Redis数据类型 Redis五大基本数据类型 有序集合业务场景 有序集合数据结构 为什么使用字典和跳跃表 压缩列表 1. Redis快的秘密 面试官:Redis什么这么快? 相信大部分Redis初学者都会忽略掉一个重要的知识点,Redis其实是单线程模型。我们按直觉来看应该是多线程比单线程更快、处理能力更强才对,比如单线程一次只可以做一件事情,而多线程却可以同时做十件事情。 但Redis却可以做到每秒万级别的处理能力,主要是基于以下原因: (1)Redis是基于内存操作的,Redis所有的数据库状态都保存在内存中。而内存的响应时长是非常快速的,大约在100纳秒。大家可以对比下其他服务器磁盘,固态硬盘(SSD)、机械硬盘(HDD)响应时长大约几十微秒,很明显远远没有基于内存的响应时长快速。 (2)Redis采用I/O多路复用技术,这种I/O模型是非阻塞I/O,应用程序在等待I/O操作完成的过程中不需要阻塞。 (3)最后一点也是我开头提到的,Redis采用了单线程模型。单线程模型避免了多线程产生的线程切换和锁竞争带来的资源消耗,这两种消耗对性能影响是很大的。另外一点是单线程相比多线程来说实现更简单高效,如果引入多线程设计相信Redis实现起来会更加复杂不易优化。 2. Redis数据类型 2.1 Redis五大基本数据类型 面试官:你说说Redis五大基本数据类型? Redis基本数据类型一共有五种,这也是面试官重点考查的基础,大家要重点关注下。 (1)字符串。 字符串是Redis最基础,也是业务开发中最常见的一种数据类型。在业务上一般使用MySQL作为实际存储层,而Redis字符串作为缓冲层对象。 127.0.0.1:6379> set name JavaGetOfferOK127.0.0.1:6379> get name"JavaGetOffer" (2)哈希。 哈希的键值本身是一个键值对结构,类似于key = {{field, value}, {field, value}}。 我们可以使用hset命令设置哈希键值,而hget命令可以获取哈希对象中某个field的值。 127.0.0.1:6379> hset msg name JavaGetOffer(integer) 1127.0.0.1:6379> hset msg avator 思考的陈(integer) 1127.0.0.1:6379> hget msg name"JavaGetOffer"127.0.0.1:6379> hget msg avator"思考的陈" (3)列表。 Redis的列表是一个有序列表,但大家注意一点,此处所说的有序不是按数据大小排序的有序,而是按插入顺序的有序。另外一点特殊之处是我们可以往列表的左右两边添加元素。 # 从右边添加127.0.0.1:6379> rpush number 1 2 3(integer) 3# 从左边添加127.0.0.1:6379> lpush number 4 5 6(integer) 6127.0.0.1:6379> lrange number 0 51) "6"2) "5"3) "4"4) "1"5) "2"6) "3" (4)集合。 集合类型和列表不同之处在于它是无序的,同时也不支持保存重复的元素。 另外两个集合之间可以获得交集、并集、差集。利用这一点,如果在业务上要求得两个用户相同的兴趣标签,可以使用Redis集合存储用户兴趣标签,再使用交集命令来查询。 127.0.0.1:6379> sadd user:1:like game bask run(integer) 3127.0.0.1:6379> sadd user:2:like game basketball fitness(integer) 3# 求交集127.0.0.1:6379> sinter user:1:like user:2:like1) "game" (5)有序集合。 有序集合算是Redis中比较特殊的一种数据类型,有序集合里的每个元素都带有一个score属性,通过该score属性进行排序。如果我们往有序集合插入元素,此时它就不像列表对象一样是插入有序,而是根据score进行排序的。 127.0.0.1:6379> zadd 100run:ranking 13 mike(integer) 1127.0.0.1:6379> zadd
点赞 7
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-30 17:25
内蒙古大学 模拟IC设计
小米,你是如此的冷酷无情😭
没有测评没有笔试没有感谢信,直接就是一个寄
投递小米集团等公司10个岗位
点赞
评论
收藏
分享
07-30 11:23
门头沟学院 Java
当我把招聘软件上的学历改成高中后...
_mos_:
你好溜溜球
点赞
评论
收藏
分享
07-12 17:59
郑州大学 自动化
好像给安排面试的hr惹生气了怎么办
面试汇川,因为学校小学期的原因,导致安排的面试调整了好几次,虽然我姿态很卑微的道歉了,但还是感觉hr生气了。一面过了,二面她约了个时间(当天下午),我说这个时间我在学校安排的实习,能不能往后调整一天(之前因为同样原因调整了两次),当时没说什么。但是后续就渺无音讯了,我发短信也不理我。牛爷爷们怎么办,我总不能因为这样一个原因导致面试没了吧
金俊涛:
话说楼主突然想到,这两天是周末,她是不是不工作啊,所以没回我
点赞
评论
收藏
分享
07-27 17:41
浙江越秀外国语学院 数据分析师
学院本?我上去就是一巴掌,还没有实习?那更是两巴掌
论如何在茅坑中浴火重生🧐
牛客34884196...:
你期望薪资4-5k,那确实可以重生了,但很难在深圳活下去
点赞
评论
收藏
分享
昨天 17:22
已编辑
中南大学
亲测某团AI面试:省时但手酸!
对着卡通HR答题30分钟,胳膊酸了嗓子哑了技术题限时5秒思考直接大脑空白!系统卡死强退重进,提问环节竟消失…公平但冰冷,求下次真人面!总结:AI面试直接上招聘流程还是有点难,平时拿来模拟面试还是不错呢!
投递美团等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
1.1W
2
...
虾皮秋招一面
3573
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3467
4
...
觉得研发高人一等的这辈子有了
2768
5
...
百度提前批 三面
2032
6
...
最强本科✌
1759
7
...
也是逆天了
1451
8
...
被猿辅导挂了简历,但我想说...
1405
9
...
虾皮一面凉经
1368
10
...
上班一周,工资还没拿,先欠公司两千
1338
创作者周榜
更多
正在热议
更多
#
工作中哪个瞬间让你想离职
#
65973次浏览
582人参与
#
找工作如何保持松弛感?
#
92284次浏览
1120人参与
#
中兴秋招
#
207362次浏览
2304人参与
#
如何快速融入团队?
#
18985次浏览
220人参与
#
Offer比较,你最看重什么?
#
194314次浏览
1323人参与
#
和同事相处最忌讳的是__
#
27065次浏览
257人参与
#
秋招被确诊为……
#
166658次浏览
794人参与
#
参加过提前批的机械人,你们还参加秋招么
#
86723次浏览
1417人参与
#
投格力的你,拿到offer了吗?
#
87724次浏览
586人参与
#
虾皮求职进展汇总
#
250933次浏览
1886人参与
#
你最希望上岸的公司是?
#
136081次浏览
709人参与
#
计算机专业还有必要去大厂卷吗
#
38768次浏览
183人参与
#
柠檬微趣工作体验
#
6934次浏览
40人参与
#
26届的你,投了哪些公司?
#
51108次浏览
521人参与
#
地平线求职进展汇总
#
52766次浏览
371人参与
#
通信硬件岗投递时间线
#
18976次浏览
69人参与
#
简历上的经历如何包装
#
32452次浏览
866人参与
#
我对___祛魅了
#
53351次浏览
467人参与
#
你跟室友的关系怎么样?
#
8337次浏览
124人参与
#
你遇到最难的面试题目是_
#
17690次浏览
210人参与
#
一人推荐一个值得去的通信/硬件公司
#
191721次浏览
1886人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务