微派-二面-后端开发

Redis 压缩列表缺点? 为了能够倒序遍历,entry里的长度记录的是前一个entry的长度。

  • 不能保存过多的元素,否则查询效率就会降低;
  • 新增或修改某个元素时,压缩列表占用的内存空间需要重新分配,甚至可能引发连锁更新的问题。

Redis字符串怎么扩容的?

当SDS需要进行空间扩展的时候,程序不仅会为SDS分配修改锁必须要的空间,还会为SDS分配额外的未使用空间。分配公式1. 如果对SDS进行修改之后,SDS的长度小于1MB,那么程序分配和len属性同样大小的未使用空间,这时SDS的len属性的值和free相同2. 如果对SDS进行修改之后,SDS的长度大于1MB,那么程序会分配1MB的未使用空间。

Redis 持久性,RDB方式 为什么fork一个子进程,为什么fork一个子进程就不阻塞主进程了?怎么样不影响主进程的?子进程与主进程有什么关系?(共享主进程的内存空间)

fork一个子进程生成一个快照与主进程共享内存空间,这时如果有修改操作主进程会复制出

对应的内存页(写时复制),没有修改的内存页不会复制,子进程就是利用这个机制,不会阻塞主进程。

Redis AOF缓存区 刷盘时机?如果交给操作系统,操作系统如何决定什么时候刷盘?

默认是everysec。

操作系统有两种:缓存区满了,还有定时刷。

Redis IO多路复用机制了解吗?

服务端进行listener之后,执行accept等待连接,客户端连接,连接进行三次握手之后,accept那里就可以拿到一个连接,就是一个Socket,然后把这个连接会放到IO多路复用里面管理这个连接,通过IO多路复用监听这个连接的事件,比如说发了一个命令,就有了一个可读事件,触发一个回调,会把可读事件缓存区里面的东西读出来 就是一个命令,在通过对应的事件处理器去解析,去处理这个命令。

IO多路复用里的select, poll,epoll了解吗 之间的区别?(看操作系统)

你对分布式怎么理解的?分布式是一种什么样的模式,做成分布式需要考虑的问题?

**分布式怎么哈希的? **

Redis一致性哈希是如何用的?怎么判断slot是属于哪个节点。初始化的时候怎么分配的slot的?

一致性哈希算法(带虚拟节点的一致性哈希分区)将整个哈希值空间组织成一个虚拟的圆环。根据key计算hash值,确定数据在环上的位置,然后从此位置沿环顺时针行走,找到的第一台服务器就是其应该映射到的服务器。

一个节点除了会将自己负责处理的槽记录在clusterNode结构的slots属性和numslots属性外,他还会将自己的slots数组通过消息发送给集群中的其他节点,以此来告知其它节点自己目前负责处理哪些槽。

#软件开发2023笔面经#

#软件开发2023笔面经#
全部评论
你是写了精通redis吗,怎么问的这么难
3 回复 分享
发布于 2023-04-22 19:21 北京
你的最后一个问题回答的是插槽迁移的过程,和问题不匹配: 使用Redis集群时,可以通过CLUSTER SLOTS命令查看当前集群节点的插槽分配情况,初始情况会依据 hash(key) % N 将哈希槽进行等分。一个插槽只会被分配给一个节点处理。当一个节点需要处理一个未分配的插槽时,它会向其他节点发送一个“槽迁移”请求,将该插槽从原节点迁移到自己的节点上。槽迁移的过程是自动的,不需要用户干预。
1 回复 分享
发布于 01-03 02:18 湖北
一共几面啊
点赞 回复 分享
发布于 2023-04-25 12:18 上海

相关推荐

世界上最难的事情是,长大以后的你还在坚持着实现小时候的梦想;而更难的事情则是,你真的实现了小时候的梦想。 10 年前的那个孩子怎么也不会想到,10 年后的他自己竟然真的成为了他梦想中的那个样子...... 启航 不知道为什么,从小就对计算机这么一个冰冷的东西情有独钟:我热衷于探索 Windows XP 控制面板中的每一个选项,与 Windows 搜索的吉祥物 Rover 做朋友,研究光驱和 3.5 软盘驱动器(是的,3.5 软盘!)的使用方式 —— 即使在那个计算机还没有普遍连上网的时代,我依然愿意探索计算机中的每一个角落。 当然,这可能和我喜欢玩计算机游戏有关,在那个网络并不发达,移动通信...
在摸鱼的香菇很想退休:感觉佬的经历是我曾经想过的 我最开始想学计算机是因为我想写游戏脚本 不过后来上大学走偏了去打竞赛了 不过算是找到另外一个爱好了 从结果来看感觉还是学历加非科班吃了亏 不过现在形式不好 读研也不一定能有更好的结果 还是祝愿佬拿到更多更好的offer吧 感觉你真的很优秀
点赞 评论 收藏
分享
投票
潮州三环 研发 22K×13 硕士985
长大我要当喜之螂:这两个薪资差太多了,再找找,实在要签的话三环吧查看图片
点赞 评论 收藏
分享
11-13 10:10
先说bg,就是民办本科,没有什么值得好提的实习方面:一共3段实习,只有一段干了半年,其他两段直接跑路了选择的方向:我自己学习的是java,一开始自己的目标是做后端开发,大三第一个学期投了整整一个学期就两个日常实习面试还全挂了,怪我太菜,所以最后只走了开发(还有一个原因,自己不够卷,只把ssm搞完就结束了,redis中间件,消息队列等没有去学习,这里太天真了,作为开发日常实习生没有学这些现在真的没有面试的资格,遂转测试。3段实习是我决定转测试以后获得的,具体什么公司就不说了,一段小厂一个月-中厂半年-中小厂一个月不到具体原因就不细说为什么一个月和一个月不到的了然后我又天真的以为凭借这份半年的实习经历可以去准备秋招,距离合同到期还有两周,离职,开始投递秋招8月开始加入神仙打架队列,其实民办二本的学生,一直坚持实习到10月都说的不过分,除非有特别过硬的能力,不然8月,9月就是干等,苦熬,没有任何办法整个秋招过程,只有一个大厂面试,一面挂(快手,8月)那时候以为是秋招开端,这么早就有面试,没想到很快就经历了整整九月份都没有面试的特别难熬的过程。(我在九月份一直都在投简历,笔试,一共投了差不多200了到九月份投递数量)接下来10月份,来了一个小厂的功能测试面试,一共两面,主管面和hr面,主管面一个小时,面完第二天我看到深圳政府组织了线下招聘会,那时候10.12很大的一个招聘会,我里面前往,在路上收到一面通过,接下来到了招聘会,一共能投的只有17个公司,投完以后,只收到了一家硬件小厂的面试,说起来也搞笑,这家公司在9月份就约面了,结果面试当天面试官不来会议,我等了一个小时,打电话给hr也不接电话,在深圳时候又碰到这个公司了,我就去问为什么没有面试,告诉我下周重新找hr和我对接,当天那个公司排队人数和比亚迪差不多了快,结果面完开了一个侮辱人的价格,是真的不如进厂打工的侮辱价。再说说目前剩下的,一个中厂二面完成,还有部分公司在流程没挂,但是还能进入约面的公司数量估计真的寥寥无几了。总计秋招官网投递:240+公司,boos:140左右目前为了保底,先签约了这个小厂,工资不到10k,但是只能安慰自己先有工作,再去看后面有没有其他机会,而且要求提前实习,已经来公司实习了,目前感觉还不错,但是还是想去争取更高薪资的offer,牛友们都加油吧~大不了春招继续
点赞 评论 收藏
分享
1 17 评论
分享
牛客网
牛客企业服务