NatsuiroGinga level
获赞
188
粉丝
79
关注
39
看过 TA
1235
门头沟学院
2027
golang
IP属地:上海
nothing
私信
关注
03-18 21:26
已编辑
门头沟学院 golang
面了2小时,场景题差不多用了一小时,不断追问1. 基于redis的分布式锁怎么实现的?怎么解决误删问题?怎么解决锁超时无法释放的问题?2. Lua为什么能保证原子性?3. 讲讲Epoll的原理?4. 为什么MySQL用B+树, 不用红黑树?5. 在不考虑内存空间限制的情况下, B+树和红黑树都在内存里, 这两个相比哪个查询效率更快?6. MySQL的InnoDB存储引擎会不会每一次查询B+树的索引都要去磁盘IO?为什么?7. sql题, 考察最左前缀匹配原则。追问:最左前缀的底层原理是什么?8. MySQL的可重复读怎么实现的?可重复读能解决幻读问题吗?了解间隙锁吗?场景题1:场景:设计一个网络服务器,现在有【多线程 + 每个线程内部阻塞IO】 和 【单线程 + Epoll】这两种方案(1)这两种方案在cpu负载,时间效率,内存资源占用这三个方面各有什么特点?(2)现在有大量的就绪socket需要处理,使用单线程模型有什么问题?该怎么优化?(3)开放题:如果让你来设计一个网络服务器,你有什么方案?场景题2:场景:现在有一天内的大量日志,每条日志记录了用户id, 登陆时间,登出时间 {userid, login_time, logout_time}, 时间单位是秒。(1)怎么求出一天内的最大在线人数?(2)怎么求出维持在最大在线人数的最长持续时间?手撕算法:LRU,可以使用标准库的链表和map,自己构建测试数据,ACM模式
XiaoMuGGG:耐面王
查看33道真题和解析
0 点赞 评论 收藏
分享
03-09 20:13
已编辑
门头沟学院 golang
1. 讲讲Redis的Zset的实现原理?追问1: 跳表的查询, 插入, 删除的时间?追问2: Zset的跳表底层存储了什么?追问3: Zset为什么还要加入map?追问4: Zset为什么要使用Skiplist存储元素?追问5: 讲讲查询, 插入, 删除的流程?2. 怎么使用bitmap进行容器的ip地址的管理?追问1: 我有一个ip地址, 你怎么判断它是否已经分配了?追问2: 已经添加进bitmap的ip地址怎么删除?追问3: bitmap怎么实现的?追问4: ip地址的分配情况怎么持久化?(可以用MySQL)追问5: 如果有多个机器, 多个进程并发请求分配ip地址, 怎么解决并发问题? | 回答: 分布式锁; 回复: 分布式锁太重了,            一般实际业务不用, 跳过这个话题吧3. Redis的string底层怎么实现的?4. Redis的set底层怎么实现的?5. 并发安全的map怎么实现的?6. Redis的数据分片怎么实现的?7. 有多少种方法可以控制协程的关闭?(信号量, context, 定时器, channel...)8. go的pprof用过吗?9. git了解吗?10. 讲讲为什么四次挥手要有time_wait?以及为什么time_wait = 2MSL?11. 一个url从输入浏览器到最后到达服务器会发生什么?(要求越详细越好, 但是吟唱到路由器被打断了)追问1: 说说路由器传输过程中的协议?追问2: 为什么数据包到了网卡就知道发送给网关?(route)12. TCP里的RST是做什么用的?算法: 给定一个编码后的字符串: 2[a]3[b], 要解码为aabbb, 还能解决嵌套括号比如: 3[a2[c]] (可以使用双栈)
查看25道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务