20220725 字节 商业化技术 一面凉经

恭喜发现宝藏!微信搜索公众号【TechGuide】回复公司名,关注更多新鲜好文和互联网大厂的笔经面经。
作者@TechGuide【全网同名】
点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝

  1. redis的zset是怎么实现的?(哈希表+跳表),跳表的节点有什么内容?跳表的查询过程是什么样的?复杂度是多少?redis的跳表是双向的,这样设计是为什么?

  2. redis怎么设置过期的?(答给每个数据添加一个属性,过期时间,到了过期时间就删除,猜的)。怎么检查?(周期检查,惰性检查)。

  3. redis是单线程的,为什么这么设计呢?(基于内存,瓶颈不在cpu, 加锁反而会带来性能损失)。 单线程一定比多线程好吗?为什么新版本的redis还要变成多线程的?(答 读多写少的时候,加共享锁多线程性能更好), 那不考虑这种场景,读写差不多的情况下呢?

  4. 锁在内核中是怎么实现的呢?(瞎说了个锁总线)

  5. 多线程竞争一把锁,会不会出现一个线程永远抢不到锁的情况?这种问题该怎么解决?(答的是 等待久的优先级提升)

  6. 讲一下什么是非阻塞socket

  7. 阻塞,非阻塞,同步和异步之间是什么关系?(答了一大堆)

  8. 讲一下epoll,它在内核中是怎么实现的?(红黑树)

  9. 为什么是红黑树呢?(查询效率吧)

  10. 我们知道红黑树是一个有序的,那epoll树是依靠什么排序的呢?(不知道)

  11. 客户端多个线程发送请求,在读取响应结果时,怎么和每一个请求线程对应呢?(瞎说了个消息和tid绑定)

  12. tcp和ip层的关系?(ip层只负责主机与主机之间的通信,tcp需要绑定端口实现进程间的通信。tcp是可靠传输的,ip只能尽力交付)

  13. 那就仅考虑主机与主机之间的通信?没有可靠保证,是不是就会有大量丢包呢?整个网络的可靠性全部由传输层来保证吗?(答,可靠这个概念不仅仅是包是都按序全部到达,每一层都有自己的差错控制机制)

  14. 怎么理解你说的差错控制这个概念呢?(主要是校验,保证接受到的包和发送的包的数据是一致的)

  15. 算法题
    a. 给你一堆坐标,求这一堆数据中两两之间的曼哈顿距离之和,曼哈顿距离定义为 |x_i - x_j| + |y_i - y_j|, 要求时间复杂度小于n^2 (写出来了)
    b. leecode 863 二叉树中所有距离为 K 的结点(没写出来)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值